2014-09-29 2 views
0

Я бы хотел очень простой способ направить всех пользователей, у которых нет определенного значения cookie. Я попытался следующий код, он перенаправляет, а затем переходит на странице не найден выплеск страницу моего провайдера.htaccess Переадресация на основе значения cookie

RewriteEngine on 

RewriteCond %{HTTP_COOKIE} ^user=(admin)$ [NC] 
RewriteRule .* http://www.example.com/%1 [R=301,L] 

RewriteRule .* http://www.example.com/login.php [R=301,L] 

У меня нет никаких других правил. У меня также есть только две страницы на сервере. Он перенаправляется login.php, а затем я получаю следующую ошибку FireFox

The page isn't redirecting properly. 
    Firefox has detected that the server is redirecting the request for this address in a way that will never complete. 
    This problem can sometimes be caused by disabling or refusing to accept cookies 
+0

У вас есть другие правила в вашем Htaccess? Когда вы получаете перенаправление и откуда? Куда ? Каков URL-адрес, если он не найден? –

+0

@JustinIurman Я добавил к своему вопросу, спасибо. – 2014-09-29 18:36:20

+0

У вас бесконечный цикл. Во-первых, вы не должны использовать для этого постоянное перенаправление (301). Вы должны просто проверить, является ли * cookie * 'user' равным' admin', и если он не перенаправляется (302: временный) на 'login.php' –

ответ

0

Вы должны добавить некоторые условия, чтобы предотвратить зацикливание:

RewriteEngine on 

RewriteCond %{HTTP_COOKIE} ^user=(admin)$ [NC] 
RewriteCond $1 !^admin 
RewriteRule ^(.*)$ http://www.example.com/%1 [R=301,L] 

RewriteCond $1 ^login\.php 
RewriteRule ^(.*)$ http://www.example.com/login.php [R=301,L] 
+0

У меня тоже такая же проблема с этим кодом, спасибо. – 2014-10-01 16:52:03

Смежные вопросы