Apache没有任何错误页面

如何设置Apache服务没有错误页面内容? 我不想要默认行为,空白或自定义页面。 我想要返回没有内容,除了标题,所有的浏览器必须显示自己的本地错误页面。 我使用的是Apache 2.2.22

我相当肯定你不能这样做,Apache会做一些有益的事情。 从ErrorDocument文档

如果出现问题或错误,可以将Apache httpdconfiguration为执行以下四项操作之一:

  1. 输出一个简单的硬编码错误信息

剩下的就是custom / local /和远程错误文件。 后来的文件说

此外,可以使用特殊值default来指定Apache httpd的简单硬编码消息。

所以看起来,默认的行为是提供一个硬编码的ErrorDocument,并且你不能以你想要的方式覆盖它。

如果你的Apache有PHP,Perl或者任何其他能够进行HTTP头控制的dynamic扩展,那么创build一个自定义页面,用你想要的HTTP头字段来响应(例如使用PHP header() ),但是没有其他的内容如HTML。

设置ErrorDocument指令到该自定义页面应该产生你想要的结果。


注意:我知道你的问题是通过设置Apache来提供没有错误页面内容,并且不使用任何自定义页面来询问如何完成响应。 上面的答案只有在不受限于实际问题 (即给出只包含HTTP头字段的HTTP响应)的情况下才有效。 你真的有这个约束:实际的问题(即期望的结果)不能通过涉及任何自定义页面来解决吗?

你有没有尝试过设置空的ErrorDocument指令? 有用吗?

 ErrorDocument 404 "" 

要么

 ErrorDocument 404 /path/to/empty/file.html 

Apache可能是有帮助的,并忽略空值,所以你可能需要发送一个空格或<html></html>以防止它重写你的值。

值得一提的是浏览器没有针对所有可能的错误代码的错误页面。 服务器负责提供这些页面。 当浏览器显示自己的错误页面时,很可能是通用的和误导性的。

Internet Explorer是独一无二的,认为它比服务器知道得更好,如果它们小于512字节,它将覆盖错误页面。 其他服务器仅为服务器无法parsingDNS查找错误,重置连接或redirect循环等情况提供错误页面。 在大多数浏览器中,如果您发送一个空的错误文档,您将得到的是一个空白页面。