htaccess 重定向错误页面

htaccess 重定向错误页面

我知道这是一个常见的问题,但我不确定为什么这在我的本地主机(WAMP)上失败。

我想将 500 错误重定向到我的登录页面。我尝试了以下方法:

  • ErrorDocument 500 http://localhost/mysite/login.php
  • ErrorDocument 500 C:/wamp64/www/mysite/login.php
  • ErrorDocument 500 mysite/login.php
  • ErrorDocument 500 login.php

这些都无法重定向到我的登录页面。

答案1

我正在用 PHP 测试一些东西。我想确认一下如果我禁用错误报告会发生什么。正如预期的那样,我得到了一个 500 错误。我想用 htaccess 为此配置一个重定向

您无法定义 ErrorDocument 来.htaccess处理这个问题。

display_errors当关闭并且应用程序中发生不可恢复的错误时,PHP 本身将返回一个空的 500 响应。

要定制/处理此响应,您需要定义自己的自定义 PHP 错误处理程序。 https://www.php.net/manual/en/book.errorfunc.php

(但请注意,如果你有一个致命的解析错误在您的脚本中,那么您的错误处理程序可能仍然不会被调用 - 但这在生产服务器上永远不会发生。)

您能指出一些相关文献吗?

不幸的是,我没有一个中心参考点。这真的只是它的运作方式......

Apache ErrorDocument 仅在 Apache 本身触发错误响应时才会触发。(尽管自定义 500 ErrorDocument 不会在以下情况下触发:全部Apache 500 响应,如果定义得较晚,.htaccess可能根本无法捕获太多信息。这应该在服务器配置/虚拟主机中定义。)

当 PHP 发送响应时,要触发 Apache ErrorDocument,Apache 需要拦截并覆盖该响应 - 但这并不会发生。就像您可能从 PHP 脚本发送 404 一样,Apache 不会拦截此响应来发送 Apache 404 响应。

相关内容