Apache 没有任何错误页面

Apache 没有任何错误页面

如何设置 Apache 以提供无错误页面内容?我不想要默认行为、空白或自定义页面。我希望除了标题之外不返回任何内容,所有浏览器都必须显示自己的本机错误页面。我使用的是 Apache 2.2.22

答案1

我确信你做不到这一点 Apache 会尽全力提供帮助。从錯誤文檔文档

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

  1. 输出简单的硬编码错误消息

其余的是自定义/本地/和远程错误文档。后来文档说

此外,特殊值默认值可用于指定 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 查找错误、重置连接或重定向循环。在大多数浏览器中,如果您发送空的错误文档,您将得到一个空白页。

相关内容