我试图弄清楚如何将所有错误页面重定向到/error.php?e={ERROR HERE}
.
例如,如果用户遇到 404 错误,他们将被定向到/error.php?e=404
.
有没有办法做到这一点?
我试图弄清楚如何将所有错误页面重定向到/error.php?e={ERROR HERE}
.
例如,如果用户遇到 404 错误,他们将被定向到/error.php?e=404
.
有没有办法做到这一点?
理想情况下,我们只能做到:
ErrorDocument 404 /error.php?e=404
但是,如果原始 URL 有一个查询字符串,它将覆盖 ErrorDocument 中的任何设置(我相信)。一个解决方案可能是使用ErrorDocument
和的组合RewriteRule
:
ErrorDocument 404 /404
RewriteRule ^([0-9]+)$ /error.php?e=$1 [L]
ErrorDocument
设置为各种错误返回的默认页面。将RewriteRule
请求发送到实际的 php 文件,并在查询字符串中传递数字。
您可以使用 apache 错误文档配置。这是更多信息
更高级的方法是使用 Apache 为您创建的自定义 REDIRECT_ 变量。请参阅这篇很棒的博客文章以了解有关自定义 ErrorDocument 的环境变量的更多信息 http://www.benhallbenhall.com/2017/01/custom-apache-error-handler-error-url-php/
您可能还想查看http://httpd.apache.org/docs/2.2/custom-error.html上的自定义错误页面上的 Apache 文档