我的htaccess中有这个
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>
网站需要这样才能正常运行。当我放置一个不正确的网址(不存在的网页)时,它会将我重定向到主页?我想改为显示我的404页面?
答案 0 :(得分:0)
如果您的404页面是实际文件(例如/404.html),那么该规则应该按原样运行,因为它指定不将其应用于现有文件。如果您的404页面是虚拟的,那么您需要添加RewriteCond来排除它。例如,如果404页面真的是/index.php?error
,您可以在RewriteRule前添加以下RewriteCond,根据需要更新查询字符串:
RewriteCond %{QUERY_STRING} !^error
或者,您可以为您的php / CMS代码创建一个真正的404.html页面,在这种情况下原始规则应该没问题。