mod_rewrite中的规则异常

时间:2012-01-17 03:23:10

标签: apache .htaccess mod-rewrite

我创建了每个新用户在访问时重定向到的页面,它设置了一个cookie,允许访问我网站的其余部分。我想为一些网站及其机器人添加例外规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} http://www.site1.com [NC,OR]
RewriteCond %{HTTP_REFERER} http://www.site2.net [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bot2 [NC]
RewriteRule .? - [S=1]
RewriteCond %{HTTP_COOKIE} !yes=1 [NC]
RewriteRule !^(script1.php|script2.php)$ script2.php [L]
</IfModule>

如您所见,如果cookie不存在或者!= 1每个用户都被重定向到script2.php。

我写了一些例外,但有时候它有效,有时则没有。

我在某个地方犯了错误,但我没有看到它。

你能帮我解决这个问题吗?谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

我宁愿使用[L]代替[S=1]

其次,我会对script2.php进行外部重定向,因此不会缓存(错误)。因此,请在最后一条规则上使用[R,L]而不是[L]