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

时间:2015-08-29 21:25:56

标签: apache .htaccess mod-rewrite http-status-code-404

我不确定这里的错误是什么,但我无法将404错误重定向到特定页面。这就是.htaccess的样子:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.+) index.php

ErrorDocument 404 http://www.someurl.com/error404/404.php

错误文件夹和文件存在,当我执行curl -i http://www.someurl.com/notexistent时,它会返回正确的404错误代码。但是没有重定向,也没有卷曲,也没有在浏览器中。怎么可能? 对不起,我不是这些.htaccess配置的专家,非常感谢帮助。

编辑1: 我尝试了不同的网址:

ErrorDocument 404 http://www.someurl.com/error404/
ErrorDocument 404 /error404/404.php
ErrorDocument 404 /error404/

但没有成功。

编辑2: 我忘了提到:mod_rewrite按预期工作。只有404重定向不起作用。

1 个答案:

答案 0 :(得分:0)

使用RewriteRule,您将没有真实文件或文件夹的所有网页重写为index.php,404错误没有例外......

尝试:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php? [L,R=404]