2012-01-17 98 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]