Recherche de site Web

Rediriger les demandes de sites Web en fonction du navigateur utilisé (Chrome, Firefox ou IE)


Comme promis dans notre article précédent (Comment effectuer une redirection interne avec mod_rewrite), dans cet article, nous expliquerons comment afficher le contenu d'un site Web personnalisé à l'aide des requêtes de redirection Apache mod_rewrite en fonction des critères du navigateur de l'utilisateur.

En théorie, tous les navigateurs modernes devraient interpréter le contenu de la même manière. Cependant, certains implémentent les dernières fonctionnalités plus rapidement que d’autres. Afin d'avoir un site Web entièrement fonctionnel qui ne se casse pas lorsqu'il est consulté à l'aide d'un certain navigateur. Malheureusement, cela nécessitera une redirection vers un autre répertoire ou une autre page.

Lecture suggérée : 5 conseils pour améliorer les performances de votre serveur Web Apache

Les règles de réécriture suivantes redirigeront les requêtes pour tecmint.html vers tecmint-chrome.html, tecmint-firefox.html ou tecmint -ie.html selon le navigateur utilisé (Google Chrome, Mozilla Firefox ou Internet Explorer).

Pour ce faire, la variable d'environnement HTTP_USER_AGENT est utilisée pour identifier le navigateur en fonction de la chaîne de l'agent utilisateur. Nous introduisons ici la directive RewriteCond, qui nous permet de spécifier une condition qui doit être remplie pour que la redirection ait lieu.

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]

Veuillez noter que la page cible tecmint.html ne doit pas nécessairement exister. Tout d'abord, créons tecmint-firefox.html, tecmint-chrome.html et tecmint-ie.html avec le contenu suivant.

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>

nous verrons le résultat de la navigation sur tecmint.html en utilisant différents navigateurs :

Comme vous pouvez le constater, les requêtes pour tecmint.html ont été redirigées en conséquence en fonction du navigateur utilisé.

Dans cet article, nous avons expliqué comment effectuer des demandes de redirection en fonction du navigateur de l'utilisateur. Pour conclure, je vous recommande fortement de jeter un œil à l'aide-mémoire mod_rewrite et de mettre en signet le guide de redirection et de remappage dans la documentation Apache pour référence future.

Comme toujours, n'hésitez pas à utiliser le formulaire de commentaires ci-dessous si vous avez des questions ou des commentaires sur cet article. Nous avons hâte d'avoir de tes nouvelles!