如何使用.htaccess条件排除文件

时间:2013-05-30 08:51:33

标签: apache .htaccess url url-rewriting

我在我的网站上实现了一个.htaccess文件,该文件包含所有请求的重写规则。我想添加一个条件,以便在请求某个文件时不应用重写规则。我怎么能这样做,以便在将来如果需要的话可以增加更多。我将在下面粘贴我的代码。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?filename=$1 [L,QSA]
</IfModule>

1 个答案:

答案 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