Rediriger une page Web

Il est parfois nécessaire de rediriger vos visiteurs sur une autre page.

Exemples :

  • une page d'accueil rapide à charger redirige après un certain laps de temps le visiteur vers une page plus complète.
  • après un test d'autentification, le visiteur atteint soit une page d'accès privé soit une page dont les informations sont accessibles à tous.
  • utiliser des pages différentes en fonction du navigateur du visiteur, ou en fonction de la langue de son système.
  • rediriger le visiteur vers un nouveau site, et signaler aux moteurs de recherche que l'ancien site n'est plus valide.
  • etc.

Il existe plus d'une technique de redirection, et le choix d'une méthode ou d'une autre sera dépendant des motivations (voir exemples ci-dessus).

Table des matières Haut

Redirection avec les Meta-Tags

Ce type de redirection présente l'avantage de pouvoir spécifier un délais pendant lequel la page sera affichée avant de renvoyer le visiteur vers une autre page. Dans le cas où la valeur du délais vaut zéro, la redirection est immédiate, mais le client doit quand-même charger les en-têtes de la page pour que le navigateur puisse déterminer la page à charger.

  1. <meta http-equiv="refresh" content="20; URL=http://www.gaudry.be/infobrol.html" />
  2. <title>Accueil rapide</title>
  3. </head>
  4. <h1>Bienvenue sur le site</h1>
  5. <p>Vous allez bientôt &ecirc;tre redirig&eacute;s vers la page d'accueil compl&egrave;te</p>
  6. </body>
  7. </html>

La portion de code qui nous intéresse est la suivante :

  1. <meta http-equiv="refresh" content="20; URL=http://www.gaudry.be/infobrol.html" />

Table des matières Haut

Redirection en JavaScript

Si vous désirez tester une valeur en JavaScript, puis rediriger le visiteur en fonction de cette valeur, vous pouvez utiliser du code JavaScript.

Comme nous l'avons vu dans la partie consacrée au langage JavaScript, ce code est exécuté côté client (sur la machine du visiteur). Cela signifie que la page doit être chargée avant d'interpréter le code (ce qui pose des problèmes si vous désirez cacher une partie de la page aux visiteurs qui ne sont pas habilités à consulter ce contenu).
Un autre problème intervient avec ce genre de code : certains internautes désactivent la prise en charge du JavaScript, et nous ne sommes donc pas assurés de son exécution.

  1. <script language="javascript" type="text/javascript">
  2. //Recherche de l'information de langage
  3. if (navigator.browserLanguage)
  4. var language = navigator.browserLanguage;
  5. else
  6. var language = navigator.language;
  7. //Redirections en fonction du langage
  8. if (language.indexOf('fr') > -1)
  9. document.location.href = 'page_francais.html';
  10. else if (language.indexOf('nl') > -1)
  11. document.location.href = 'page_neerlandais.html';
  12. else if (language.indexOf('en') > -1)
  13. document.location.href = 'page_anglais.html';
  14. else if (language.indexOf('de') > -1)
  15. document.location.href = 'page_allemand.html';
  16. else
  17. //si la langue n'est pas dans celles citées ci dessus
  18. document.location.href = 'page_francais.html';
  19. </script>

La portion de code qui nous intéresse est la suivante :

  1. document.location.href = 'xxx.html';

Table des matières Haut

Redirection en PHP : la fonction header()

Si le visiteur ne doit pas avoir accès au contenu du reste de la page, il est nécessaire d'utiliser un traitement côté serveur.
Un autre avantage de ce type de fonction est que l'effet est plus rapide : la nouvelle page est immédiatement envoyée par le serveur au lieu de l'ancienne.


Code php (Redirection PHP) (4 lignes) :
  1. <?php
  2. header("Location: https://www.gaudry.be/infobrol.html");
  3. exit();
  4. ?>

Retenons en passant qu'il est possible de signifier que le document est définitivement déplacé :


Code php (Redirection permanente en PHP) (5 lignes) :
  1. <?php
  2. header("Status: 301 Moved Permanently");
  3. header("Location: https://www.gaudry.be/infobrol.php");
  4. exit();
  5. ?>

Table des matières Haut

Document créé le 07/04/2005, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/html-redirections.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.