Mod_Rewrite忽略我的第一条规则

时间:2012-09-21 20:37:10

标签: php .htaccess mod-rewrite

我的htaccess中有以下内容,位于我的网站的public_html /中:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(mailinglist)/.*$ - [L]

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

我不确定这是否有效。当我转到http://www.mysite.com/mailinglist时这很好并且它不会尝试执行上面的最后一条规则。当我去http://www.mysite.com/mailinglist/login那也有效。 http://www.mysite.com/mailinglist/campaigns也适用。当它不起作用时,我去http://www.mysite.com/mailinglist/w/1它使用最后一个RewriteRule:

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

如何让这个htaccess完全忽略我的/ mailinglist目录及其中的任何内容?在那个目录中,我有一个不同的htaccess,我想要使用该目录。

1 个答案:

答案 0 :(得分:0)

尝试将您的邮件列表规则更改为:

RewriteRule ^/?mailinglist - [L,NC]

或者您可以将其添加为index.php规则的例外:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/mailinglist
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]