繁体   English   中英

htaccess ErrorDocument 404重定向不起作用

[英]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.

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