如何设置 Apache 以提供无错误页面内容?我不想要默认行为、空白或自定义页面。我希望除了标题之外不返回任何内容,所有浏览器都必须显示自己的本机错误页面。我使用的是 Apache 2.2.22
答案1
我确信你做不到这一点 Apache 会尽全力提供帮助。从錯誤文檔文档
如果出现问题或错误,Apache httpd 可以配置为执行以下四项操作之一:
- 输出简单的硬编码错误消息
其余的是自定义/本地/和远程错误文档。后来文档说
此外,特殊值默认值可用于指定 Apache httpd 的简单硬编码消息。
因此看起来默认行为是提供硬编码的 ErrorDocument,并且您无法以您想要的方式覆盖它。
答案2
如果你的 Apache 有 PHP、Perl 或任何其他能够控制 HTTP 标头的动态扩展,那么做创建一个自定义页面,该页面使用您想要的 HTTP 标头字段进行响应(例如,通过使用 PHP header()
),但不包含其他内容(如 HTML)。
对自定义页面设置ErrorDocument
指令应该会产生您想要的结果。
注意:我知道您的问题询问如何通过设置 Apache 来提供无错误页面内容和不使用任何自定义页面来实现响应。上述答案仅在您不受限制的情况下才有效如何实际上问题(即给出仅包含 HTTP 标头字段的 HTTP 响应)应该得到解决。您是否真的有这样的限制:实际问题(即期望的结果)不能通过涉及任何自定义页面来解决?
答案3
您是否尝试过设置空ErrorDocument
指令? 有用吗?
ErrorDocument 404 ""
或者
ErrorDocument 404 /path/to/empty/file.html
Apache 可能会有所帮助并忽略空值,因此您可能必须发送一个空格或<html></html>
以防止它覆盖您的值。
值得一提的是,浏览器并没有针对所有可能的错误代码提供错误页面。服务器负责提供这些页面。当浏览器显示自己的错误页面时,它很可能是通用的且具有误导性。
Internet Explorer 的独特之处在于它认为自己比服务器更了解情况,如果错误页面小于 512 字节,它将覆盖错误页面。其他浏览器仅在服务器不能例如 DNS 查找错误、重置连接或重定向循环。在大多数浏览器中,如果您发送空的错误文档,您将得到一个空白页。