Apache:Redirecionando se existir um cookie: Difference between revisions

From Wiki
mNo edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
A resposta é utilizar o '''mod_rewrite'''. Veja como:
A resposta é utilizar o '''mod_rewrite'''. Veja como:


 
= Procedimento =


Vá para o diretório '''/etc/httpd/conf'''
Vá para o diretório '''/etc/httpd/conf'''
Line 28: Line 28:
  RewriteCond %{HTTP_COOKIE} !^.*NomeDoCookie.*$ [NC]
  RewriteCond %{HTTP_COOKIE} !^.*NomeDoCookie.*$ [NC]
  RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
  RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Salve e feche o arquivo




Line 35: Line 33:


  > /etc/httpd/bin/apachectl restart
  > /etc/httpd/bin/apachectl restart


== Flags ==  
== Flags ==  
Line 42: Line 39:
* R  (redirect) -> envia o redirecionamento
* R  (redirect) -> envia o redirecionamento
* L  (last) -> Ignora as condições posteriores, semelhante ao ''break'' do ''C''.
* L  (last) -> Ignora as condições posteriores, semelhante ao ''break'' do ''C''.
[http://httpd.apache.org/docs/current/rewrite/flags.html 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]]
*[[IBM HTTP Server|  Mais Artigos sobre Apache HTTP Server]]
[[Category:IBM HTTP Server]]
[[Category:Apache HTTP Server]]

Latest revision as of 20:18, 11 December 2013

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

A resposta é utilizar o mod_rewrite. Veja como:

Procedimento

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