htaccess文件中的条件重写

时间:2012-09-12 08:57:59

标签: .htaccess mod-rewrite

我对整个.htaccess事情都很陌生,我现在正在使用以下内容来使用'漂亮的网址':

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

现在我发现我的网站有点慢,并决定通过我在网络上找到的PHP脚本开始gzipping我的CSS文件(the website)。为此,我需要重写url以打开正确的php文件。这看起来像这样:

RewriteRule ^(.*).css$ /csszip.php?file=$1.css [L]

但我只希望第一个发生在第二个没有时,反之亦然。换句话说,我喜欢这样的东西:

<IfModule mod_rewrite.c>
    RewriteEngine On
    if request doesn't contain .css do
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php?path=$1 [NS,L]
    else do
        RewriteRule ^(.*).css$ /csszip.php?file=$1.css [L]
</IfModule>

任何人都可以帮助我使用正确的代码或我可以找到在htaccess文件中使用某种条件语句的方法吗?

先谢谢!:)

1 个答案:

答案 0 :(得分:1)

试试这个

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} !.css
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?path=$1 [NS,L]

    RewriteRule ^(.*).css$ /csszip.php?file=$1.css [L]
</IfModule>

此外,您可以将最后一条规则放在最上面