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).
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.
Code HTML (Redirection par Meta-Tag) (10 lignes)
La portion de code qui nous intéresse est la suivante :
<meta http-equiv="refresh" content="20; URL=https://www.gaudry.be/infobrol.html" />
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.
Code JavaScript (Redirection JavaScript) (19 lignes)
<script language="javascript" type="text/javascript"> //Recherche de l'information de langage if (navigator.browserLanguage) var language = navigator.browserLanguage; else var language = navigator.language; //Redirections en fonction du langage if (language.indexOf('fr') > -1) document.location.href = 'page_francais.html'; else if (language.indexOf('nl') > -1) document.location.href = 'page_neerlandais.html'; else if (language.indexOf('en') > -1) document.location.href = 'page_anglais.html'; else if (language.indexOf('de') > -1) document.location.href = 'page_allemand.html'; else //si la langue n'est pas dans celles citées ci dessus document.location.href = 'page_francais.html'; </script>
La portion de code qui nous intéresse est la suivante :
document.location.href = 'xxx.html';
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.
Retenons en passant qu'il est possible de signifier que le document est définitivement déplacé :
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 07/04/2005 gemaakt, de laatste keer de 27/03/2020 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/html-redirections.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.