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