繁体   English   中英

Apache .htaccess:ErrorDocument和RewriteEngine不能一起工作

[英]Apache .htaccess: ErrorDocument and RewriteEngine not working together

请看一下以下.htaccess

ErrorDocument 404 /404/

RewriteEngine On
RewriteRule (.*) index.php [L]

使用此设置,我使用header('HTTP/1.1 404 Not Found'); 在PHP中重定向到错误处理页面并发送相应的HTTP状态代码。 发送了正确的404状态代码,但浏览器显示空白页面,访问日志显示"GET /invalid-url/ HTTP/1.1" 404 -

任何人都可以告诉我如何使ErrorDocument与Apache URL重写?

是在重写规则后声明404文档

您的服务器不会推送任何404错误是正常的,您使用catchall regexp((。*))作为唯一的重写规则。

但你的问题并不是真正的htaccess相关。 在PHP中,如果你发送404标题浏览器不会自动重定向到404页面,但你必须自己在PHP中提供错误页面内容,因为它是由大多数框架与内部路由系统完成的。

我想我的问题的答案是:我不需要。 我想要完成的是“404重定向”。 也就是说,在请求无效的URL时,重定向到404文档以及设置“未找到状态404”标题。 而且我不确定这是我想要的,因为无效的URL应该用404状态代码标记,而不是重定向。

如果在ErrorDocument 之前定义Rewrite 它应该可以工作。

试试这个


ErrorDocument 404 /404.html

RewriteEngine On
RewriteRule (.*) index.php [L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM