匹配并排除重写规则中的链接

时间:2013-04-20 09:58:16

标签: .htaccess preg-match

我知道如何排除文件夹,文件类型,但我不知道如何排除包含特定单词的链接。 我有这个规则:

RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule (.*) http://en.domain.com/$1 [QSA,L]

如何从此规则中排除开头的链接:index.php?a = admin

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteCond %{REQUEST_FILENAME} index\.php
RewriteCond %{QUERY_STRING} !^a=admin
RewriteRule (.*) http://en.domain.com/$1 [QSA,L]

在这里,我们添加了一个条件,指出只有在主机为www.domain.com,请求的文件为index.php且查询字符串不在{a=admin时才会发生重写。 1}}。

因此,www.domain.com/test会重定向到en.domain.com/test,但www.domain.com/index.php?a=admin根本不会重定向。