Redirigir solicitudes de sitios web según el navegador utilizado (Chrome, Firefox o IE)


Como se prometió en nuestro artículo anterior (Cómo realizar la redirección interna con mod_rewrite), en esta publicación explicaremos cómo mostrar el contenido de un sitio web personalizado utilizando las solicitudes de redirección de Apache mod_rewrite según los criterios del navegador del usuario.

En teoría, todos los navegadores modernos deberían interpretar el contenido por igual. Sin embargo, algunos implementan las funciones más recientes más rápido que otros. Para tener un sitio web completamente funcional que no se rompa cuando se visualiza con un determinado navegador. Desafortunadamente, esto requerirá una redirección a un directorio o página diferente.

Las siguientes reglas de reescritura redirigirán las solicitudes de tecmint.html a tecmint-chrome.html, tecmint-firefox.html o tecmint-ie.html según el navegador que se utilice (Google Chrome, Mozilla Firefox o Internet Explorer).

Para hacerlo, la variable de entorno HTTP_USER_AGENT se utiliza para identificar el navegador en función de la cadena de usuario-agente. Aquí presentamos la directiva RewriteCond , que nos permite especificar una condición que debe cumplirse para que se lleve a cabo la redirección.

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]

Tenga en cuenta que la página de destino tecmint.html no tiene por qué existir necesariamente. En primer lugar, creemos tecmint-firefox.html, tecmint-chrome.html y tecmint-ie.html con los siguientes contenidos.

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

veremos el resultado de navegar a tecmint.html usando diferentes navegadores:

Como puede ver, las solicitudes de tecmint.html se redirigieron en consecuencia según el navegador utilizado.

En este artículo, hemos analizado cómo realizar solicitudes de redireccionamiento según el navegador del usuario. Para terminar, le recomiendo encarecidamente que eche un vistazo a la guía de reasignación en los documentos de Apache para referencia futura.

Como siempre, no dude en utilizar el formulario de comentarios a continuación si tiene alguna pregunta o comentario sobre este artículo. ¡Esperamos con interés escuchar de usted!