我在我的网站上实现了一个.htaccess文件,该文件包含所有请求的重写规则。我想添加一个条件,以便在请求某个文件时不应用重写规则。我怎么能这样做,以便在将来如果需要的话可以增加更多。我将在下面粘贴我的代码。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?filename=$1 [L,QSA]
</IfModule>
答案 0 :(得分:1)
RewriteCond行告诉mod_rewrite何时应用RewriteRule。
正如@Niels评论的那样 - “RewriteCond%{REQUEST_FILENAME}!-f”行告诉系统如果请求是针对现有文件,则不执行RewriteRule。
如果您希望规则一般执行,即使文件存在,也只是不重写特定文件,您将删除该行,并添加更具体的RewriteCond行。类似的东西:
RewriteCond %{REQUEST_FILENAME} ="Foo.html"
有关详细信息,请参阅http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html。