Firefox和Chrome没有显示默认值"未找到"使用PHP发送标题404时的页面

时间:2015-06-11 10:13:18

标签: php apache google-chrome firefox

我使用的是Apache + PHP(在Windows下),PHP代码是

<?php
header('HTTP/1.0 404 Not Found');
exit;
?>

Firefox和Chrome没有显示默认&#34;未找到&#34;页面,但IE显示正确的&#34; HTTP错误,404消息&#34;,为什么?

3 个答案:

答案 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,因此浏览器将其视为二进制文件,而不是字符串消息

相关问题