Apache:Redirecionando se existir um cookie

Como faço para redirecionar caso um cookie exista ou não?

A resposta é utilizar o mod_rewrite. Veja como:

Vá para o diretório /etc/httpd/conf

> cd /etc/httpd/conf

Edite o arquivo httpd.conf

Remova o comentário da linha

LoadModule rewrite_module modules/mod_rewrite.so

Vá para o final do arquivo e adicione como abaixo

Se você desejar redirecionar caso um cookie EXISTA:

RewriteEngine On RewriteCond %{HTTP_COOKIE} ^.*NomeDoCookie.*$ [NC] RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Caso você desejar redirecionar caso o cookie NÃO exista:

RewriteEngine On RewriteCond %{HTTP_COOKIE} !^.*NomeDoCookie.*$ [NC] RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Reinicie o http server

> /etc/httpd/bin/apachectl restart

Flags

 * NC (nocase) -> Ignora maiúsculas e minusculas
 * R (redirect) -> envia o redirecionamento
 * L (last) -> Ignora as condições posteriores, semelhante ao break do C.

Mais flags

Direcionar para um arquivo
Se você desejar redirecionar para um arquivo caso um cookie EXISTA:

RewriteEngine On RewriteCond %{HTTP_COOKIE} ^.*NomeDoCookie.*$ [NC] RewriteRule ^.*+ /dummy.html

Ver também

 * Definindo a URL padrão no IBM HTTP Server Apache
 * Apache:Redirecionando para pagina de Erro
 * Apache:Redirecionando de HTTP para HTTPS
 * Linux e Unix: Ferramentas de Monitoracao e Performance
 * AWSTATS: Configurando o AWSTATS


 * Mais Artigos sobre Apache HTTP Server