2012-01-17 83 views
1

我创建了每个新用户在访问时被重定向到的页面,它设置了一个允许访问我网站其余部分的cookie。我想补充的例外为一些网站和他们的机器人!mod_rewrite中的规则例外

<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

我宁愿用[L]代替[S = 1]。其次,我会做一个外部重定向到script2.php,所以它没有被缓存(不正确)。所以在你的最后一条规则中使用[R,L]而不是[L]。 – Gerben 2012-01-17 18:02:56

+0

@Gerben:我遵循你的指示,现在完美运作。你可以发布它作为答案,所以我可以接受它?谢谢! – w3b4 2012-01-19 03:37:53

回答

1

我宁可使用[L]而不是[S=1]。其次,我会做一个外部重定向到script2.php,所以它不会被缓存(不正确)。因此,使用[R,L]而不是您最后一条规则中的[L]