Usando variáveis de ambiente Apache para definir o ErrorDocument personalizado

1

Eu tenho um conjunto de regras RewriteCond que testam vários dispositivos móveis e definem variáveis de ambiente como "env = device: .iphone" ou "env = device: .smartphone" se o useragent corresponder a um iPhone ou dispositivo Android .

Estou tentando redirecionar o usuário para páginas de erro do servidor 404/500 com estilo personalizado para cada dispositivo, por meio das páginas de erro.

Idealmente, eu gostaria de poder testar se uma variável está lá e, em seguida, escrever em uma string personalizada ErrorDocument. Mas um apache não parece funcionar neste caso.

Alguma idéia de como eu posso construir if / else testes em um arquivo conf do apache para o ambiente vars?

    
por Tad 22.09.2011 / 21:15

2 respostas

3

A partir da versão 2.3 do Apache, você pode fazer uso das constantes do IF. É descrito na documentação do Apache .

    
por 18.04.2012 / 15:50
0

ErrorDocument não permite nada condicional, mas faz um redirecionamento interno.

Você deve conseguir fazer isso com o mod_rewrite:

ErrorDocument 404 /normal_404.html

RewriteEngine on
RewriteCond %{ENV:device:.iphone} 1
RewriteRule ^/normal_404.html$ /iphone_404.html [L]
    
por 22.09.2011 / 21:32