ErrorDocument 404 /404-error.php
如果www.example.com/about
不存在,则会在about
之类的访问时完全重定向到404页面。但是当我访问www.example.cpm/page/test
时,不会重定向到404页面。
实际上有一个名为'page'的页面,www.example.cpm/page/test
不存在。它应该重定向到404页面。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\s([^.]+)\.php [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ErrorDocument 404 /404-error.php
ErrorDocument 500 /404-error.php
答案 0 :(得分:1)
您的404处理程序已找到,但问题是您添加.php
扩展名的重写规则。 <{1}} RewriteCond %{REQUEST_FILENAME}.php -f
即使只找到/page/test
也会返回true。
你的规则如下:
/page.php