Я создал страницу, на которую каждый новый пользователь перенаправляется при посещении, он устанавливает 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>
Как вы можете видеть, если куки не существует или = 1 каждый пользователь перенаправляется на script2.php.
Я написал несколько исключений, но иногда это работает, а иногда и нет.
Я где-то ошибся, но я этого не вижу.
Можете ли вы мне помочь? Благодарю вас за время.
Я предпочел бы использовать [L] вместо [S = 1]. Во-вторых, я бы сделал внешнее перенаправление на script2.php, поэтому он не кэшируется (неправильно). Поэтому используйте [R, L], а не только [L] в своем последнем правиле. – Gerben
@ Gerben: Я выполнил ваши инструкции, и теперь он отлично работает. Не могли бы вы опубликовать его в качестве ответа, чтобы я мог его принять? Благодаря! – w3b4