请查看以下.htaccess
ErrorDocument 404 /404/
RewriteEngine On
RewriteRule (.*) index.php [L]
通过此设置,我在PHP中使用header('HTTP/1.1 404 Not Found');
重定向到错误处理页面并发送相应的HTTP状态代码。发送了正确的404状态代码,但浏览器显示空白页面,访问日志显示"GET /invalid-url/ HTTP/1.1" 404 -
有人能告诉我如何让ErrorDocument与Apache URL重写一起工作吗?
答案 0 :(得分:5)
是在重写规则
之后声明404文档正常情况下,您的服务器不会推送任何404错误,您正在使用catchall regexp((。*))作为唯一的重写规则。
但你的问题与htaccess无关。 在PHP中,如果你发送404标题,浏览器不会自动重定向到404页面,但你必须自己在PHP中提供错误页面内容,因为大多数框架都使用内部路由系统来完成。
答案 1 :(得分:1)
我想我的问题的答案是:我不需要。 我想要完成的是“404重定向”。也就是说,在请求无效的URL时,重定向到404文档以及设置“未找到状态404”标题。 而且我不确定这是否是我想要的,因为无效的网址应该标有404状态代码,而不是重定向。
答案 2 :(得分:0)
如果在错误文档之前定义重写,它应该有效。
答案 3 :(得分:-2)
试试这个
ErrorDocument 404 /404.html
RewriteEngine On
RewriteRule (.*) index.php [L]