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


Como prometimos 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 Apache mod_rewrite redirigiendo las solicitudes 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 últimas funciones más rápido que otros. Con el fin de tener un sitio web totalmente funcional que no se rompa cuando se ve con un navegador determinado. 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 esté usando (Google Chrome, Mozilla Firefox o Internet Explorer).

Para hacerlo, la variable de entorno HTTP_USER_AGENT se utiliza para identificar el navegador según la cadena de agente de usuario. Aquí presentamos la directiva RewriteCond , que nos permite especificar una condición que debe cumplirse para que la redirección tenga lugar.

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 necesariamente tiene que existir. En primer lugar, vamos a crear tecmint-firefox.html , tecmint-chrome.html y tecmint-ie.html con el siguiente contenido.

<!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 utilizando diferentes navegadores:

Como puede ver, las solicitudes de tecmint.html se redirigieron en función del navegador utilizado.

En este artículo, hemos discutido cómo redirigir las solicitudes según el navegador del usuario. Para terminar, te recomiendo que eches un vistazo a la hoja de trucos de mod_rewrite y marques la guía de redireccionamiento y reasignación en la documentación de Apache para futuras referencias.

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!