我的 .htaccess 文件中有一堆 ErrorDocument 指令,以便捕获 Apache 可能向用户抛出的几乎所有错误,并将该用户重定向到我的错误控制器,该控制器将...
我的 .htaccess 文件中有一堆 ErrorDocument 指令,用于捕获 Apache 可能向用户抛出的几乎所有错误,并将该用户重定向到我的错误控制器,该控制器随后会以更用户友好的方式呈现错误。但是,这似乎不起作用。
例如,当我输入无效 URL(如 mysite.com/\'\'##$##$!)时,我总是收到 Apache 的默认 403 错误消息,而不是重定向到我的 errors.php 文件。下面是我使用的指令。我还需要做其他事情才能使其正常工作吗?(AllowOverride All 已设置)
ErrorDocument 403 /errors.php
如果这是处理绝对自定义错误错误的错误方法,请告诉我,我将非常感激您在正确方向上的推动。
谢谢你!
编辑:哦,我只是想提一下这个。我编写了自己的 MVC 结构来重定向请求,效果很好。在 PHP 中,如果用户请求不存在的 URL,我自己的 404 错误就会触发(或我定义的任何其他错误)。所以基本上,如果我在 URL 中输入 mysite.com/!!!!,它会起作用,我会得到 404。但是,每当我使用双引号字符开始请求时,就会触发默认的 Apache 403 错误。奇怪。此外,500 错误也将无法重定向到 errors.php,只会返回默认的 Apache 500 屏幕(例如,当使用 header(\'HTTP/1.0 500 Internal Server Error\');die(); 进行测试时)。
编辑 3:我刚刚尝试将其放入 ErrorDocument 200 "message"
我的 .htaccess 文件中,但什么也没发生,我打开的任何页面都会正常打开。最坏的情况是,这会陷入无限循环。最好的情况是,它应该输出 \'message\'。但它什么也没做,只是忽略了 ErrorDocument。Apache 的访问日志记录了一个正常的 200 OK 标头,但它被 .htaccess 完全忽略了。