Previne o loop de redirecionamento no mod_rewrite

1

Estou escrevendo uma regra no meu htaccess que basicamente diz isso:

  • Se a solicitação for para a página inicial
  • E um cookie não foi definido
  • Reescreva a página com /addCookie.php

Em seguida, em addCookie.php, definimos o cookie e redirecionamos para a página inicial. Está tudo bem, mas se o usuário não aceitar cookies, teremos um loop infinito de redirecionamentos.

Sou novo no mod_rewrite, já fiz muita pesquisa, mas não consigo quebrar o loop. Eu tenho isso até agora:

  RewriteCond %{ENV:REDIRECT_STATUS} 200
  RewriteRule .* - [S=1]

  RewriteCond %{REQUEST_URI} "^/$"
  RewriteCond %{HTTP_COOKIE} !device_detected
  RewriteRule ^ addCookie.php [L]

É o que estou tentando fazer? Eu poderia adicionar uma string de consulta no redirecionamento de addCookie.php, mas prefiro manter as solicitações idênticas.

Todas as sugestões são bem-vindas.

    
por user280381 21.11.2012 / 13:48

1 resposta

0

Sim, isso é impossível; o REDIRECT_STATUS não estará presente quando o cliente for o responsável pelo redirecionamento (da addCookie.php local de volta para / ).

Por que não configurar um cookie como parte da manipulação da sua home page se um não foi enviado pelo cliente e, potencialmente, assediar o usuário se ele não aceitar o cookie e for necessário para o seu aplicativo?

    
por 22.11.2012 / 05:21