[英]ErrorDocument 404 .htaccess not working with RewriteRule
[英]htaccess ErrorDocument 404 redirect not working
请告诉我为什么这不起作用。 它正在工作,但莫名其妙地决定停止工作。 在php中,如果找不到这样的页面,我会发出404消息。
if(checkPageExists($escaped_url_page_name)){
header('HTTP/1.1: 200 OK');
}else{
header("HTTP/1.0 404 Not Found");
die;
}
我的htaccess是
php_flag magic_quotes_gpc Off
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
ErrorDocument 404 /404.php
404页面位于根目录上,名称为404.php。 五分钟前一切都没有改变,那为什么不起作用。 我已经用提琴手测试了该页面,它的确抛出了404,但是重定向没有发生。 我已经实现了友好的URL,但是我认为这不会影响它,因为htaccess中的“ /”是指我认为的站点的物理根。 提前致谢。
我曾经有过类似的问题-当PHP抛出404标头时,Apache通常不会为其创建404页面。 (编辑:这可能与PHP是否输出任何文本有关。我没有做过很多实验。)如果您在浏览器中检查标题,即使页面空白,您也可以看到404标题有效。
我不确定自动化解决方案,但是我只是做了一个http_error($code)
函数,该函数会打印我的自定义错误页面,并在我的代码手动触发404时与header()
一起调用。然后绑定了一些代码到仅调用http_error
ErrorDocument
:
ErrorDocument 404 index.php?http_error=404
ErrorDocument 403 index.php?http_error=403
...等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.