.htaccess文件重定向到索引页,而不是自定义404页


.htaccess file redirecting to the index page instead of a custom 404 page

我有一个网站,需要在那里显示一个自定义错误页面。我以前编辑过.htaccess文件。

这是我在.htaccess文件中的内容:

RewriteEngine On
  RewriteCond %{HTTP_REFERER} !^http://(www'.)?domain.*$ [NC] 
 RewriteRule '.(gif|jpg|jpeg)$ http://www.domain.com [L]
 RewriteCond %{HTTP_HOST} !^www'.
   RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
  ErrorDocument 404 /error404.php
   ErrorDocument 403 /error404.php
   Options -Indexes 
      RewriteCond %{THE_REQUEST} 's/+page'.php'?url=([^'s&]+) [NC]
     RewriteRule ^ /%1? [R=301,L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.+)$ /page.php?url=$1 [L,QSA]

页面总是重定向到索引页面,而不是显示错误页面。我做错了什么?我试过去掉许多线条,但都无济于事。

您可以使用:

ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www'.)?domain.*$ [NC] 
RewriteRule '.(gif|jpg|jpeg)$ http://www.domain.com [L]
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} 's/+page'.php'?url=([^'s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ /page.php?url=$1 [L,QSA]

如果请求是.php.html之类的扩展,这将加载您的自定义404处理程序。