我使用的是Apache + PHP(在Windows下),PHP代码是
<?php
header('HTTP/1.0 404 Not Found');
exit;
?>
Firefox和Chrome没有显示默认&#34;未找到&#34;页面,但IE显示正确的&#34; HTTP错误,404消息&#34;,为什么?
答案 0 :(得分:0)
据我所知,Chrome和Firefox在任何情况下都会显示服务器响应,即使它是一个空文档。当不显示服务器响应(DNS失败,超时......)时,您只会看到浏览器自己的错误消息。无论您使用服务器端语言生成响应还是让Web服务器执行此操作都没有任何区别。
但是,Internet Explorer有一个名为Show Friendly HTTP Error Messages的错误/功能,浏览器会在某些条件下自动删除服务器响应(即文档大小低于给定的阈值)。理由是,小的响应可能是Web服务器的默认页面,用户将以自己的语言享受大多数标准浏览器页面。答案 1 :(得分:0)
一个可能的答案,这个问题可能是由Apache引起的,当我访问一个丢失的html时,它会响应,比如
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /missing.html was not found on this server.</p>
</body></html>
但是当我使用上面的PHP脚本发送HTTP 404消息时,apache只会响应一个空文档。
BTW,我没有在httpd.conf中设置任何ErrorDocument。
答案 2 :(得分:0)
尝试在响应中设置标题Content-Type: text/plain
。
我有一个类似的错误,标题是Content-Type: application/octet-stream
,因此浏览器将其视为二进制文件,而不是字符串消息