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

bog*_*rsu 3 php .htaccess mod-rewrite http-status-code-404

请看一下以下.htaccess

ErrorDocument 404 /404/

RewriteEngine On
RewriteRule (.*) index.php [L]
Run Code Online (Sandbox Code Playgroud)

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

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

Ben*_*oit 5

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

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

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