Pesquisa de site

Redirecionar solicitações de sites com base no navegador usado (Chrome, Firefox ou IE)


Conforme prometido em nosso artigo anterior (Como realizar o redirecionamento interno com mod_rewrite), nesta postagem explicaremos como exibir o conteúdo de um site personalizado usando solicitações de redirecionamento Apache mod_rewrite com base nos critérios do navegador do usuário.

Em teoria, todos os navegadores modernos deveriam interpretar o conteúdo igualmente. No entanto, alguns implementam os recursos mais recentes mais rapidamente do que outros. Para ter um site totalmente funcional que não quebre ao ser visualizado em um determinado navegador. Infelizmente, isso exigirá um redirecionamento para um diretório ou página diferente.

Leitura sugerida: 5 dicas para aumentar o desempenho do seu servidor Web Apache

As regras de reescrita a seguir redirecionarão solicitações de tecmint.html para tecmint-chrome.html, tecmint-firefox.html ou tecmint -ie.html dependendo do navegador usado (Google Chrome, Mozilla Firefox ou Internet Explorer).

Para fazer isso, a variável de ambiente HTTP_USER_AGENT é usada para identificar o navegador com base na string do agente do usuário. Aqui apresentamos a diretiva RewriteCond, que nos permite especificar uma condição que deve ser atendida para que o redirecionamento ocorra.

RewriteCond "%{HTTP_USER_AGENT}"  ".*Firefox.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-firefox.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Chrome.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-chrome.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Trident.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-ie.html" [R,L]

Observe que a página de destino tecmint.html não precisa necessariamente existir. Primeiro, vamos criar tecmint-firefox.html, tecmint-chrome.html e tecmint-ie.html com o conteúdo a seguir.

tecmint-firefox.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Firefox!</h3>
  </body>
</html>
tecmint-chrome.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Chrome!</h3>
  </body>
</html>
tecmint-ie.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Internet Explorer!</h3>
  </body>
</html>

veremos o resultado da navegação em tecmint.html usando diferentes navegadores:

Como você pode ver, as solicitações de tecmint.html foram redirecionadas de acordo, dependendo do navegador usado.

Neste artigo discutimos como fazer solicitações de redirecionamento com base no navegador do usuário. Para finalizar, eu recomendo fortemente que você dê uma olhada na folha de dicas do mod_rewrite e marque o guia de redirecionamento e remapeamento nos documentos do Apache para referência futura.

Como sempre, sinta-se à vontade para usar o formulário de comentários abaixo se tiver alguma dúvida ou feedback sobre este artigo. Estamos ansiosos para ouvir de você!