我手边有一个项目,但遇到了错误。
我有RewriteRule将index.php?view=$1
重定向到/
。但是,当我访问应该导致404错误的URL时,它会显示主页(index.php)。
ErrorDocument 404 /pages/errors/error_redirect.php
ErrorDocument 500 /pages/errors/error_redirect.php
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
<FilesMatch "\.tpl$">
Order Allow,Deny
Deny from all
</FilesMatch>
RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /pages/errors/404.php [L]
RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ /pages/errors/500.php [L]
RewriteCond %{REQUEST_FILENAME} !-l
# Rewrite all URLs to non-extension URLs
RewriteRule ^(admin|user)($|/) - [L]
RewriteRule ^([A-Za-z0-9-_]+)$ /index.php?view=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
我面临的问题是,如果我输入http://localhost/asdasdads
,浏览器会将我引导至http://localhost/
,而不是浏览器中的未更改的URL,而是显示index.php的浏览器。它应该显示404错误页面。
我相信RewriteRule ^([A-Za-z0-9-_]+)$ /index.php?view=$1 [L]
是这个问题的根源。由于找不到,它会将/index.php?view=asdasdads
重定向到/index.php?view=
。我希望它改为重定向到404。
提前谢谢。
答案 0 :(得分:0)
Aizat,尝试删除不必要的重写条件,并试一试:
设置404错误页面的最简单方法是直接在 .htaccess文件 中设置404错误消息:
ErrorDocument 404 /404.php