0

我的 htaccess 中有这个

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

该网站需要这个才能正常运行。当我放置不正确的网址(不存在的页面)时,它会将我重定向到主页?我想改为显示我的 404 页面?

4

1 回答 1

0

如果您的 404 页面是一个实际文件(例如 /404.html),那么该规则应该按原样工作,因为它指定不将其应用于现有文件。如果你的 404 页面是虚拟的,那么你需要添加一个 RewriteCond 来排除它。例如,如果确实是 404 页面,/index.php?error您将在 RewriteRule 前面添加以下 RewriteCond,根据需要更新查询字符串:

RewriteCond %{QUERY_STRING} !^error

或者,您可以制作一个真正的 404.html 页面供您的 php/CMS 代码使用,在这种情况下,原始规则应该没问题。

于 2013-02-15T19:00:55.873 回答