Les bonnes pratiques de redirection d'URL
Qu'est ce qu'une redirection ?
Les ressources disponibles sur Internet sont accessibles via des URLs (voir l'article consacré aux URLs). Parfois, le responsable d'un site peut vouloir changer l'emplacement d'une ressource (car il veut changer la structure de son site par exemple). Mais alors, si certains utilisateurs s'étaient habitués à l'ancien emplacement (par exemple en utilisant un marque-page / bookmark de leur navigateur) et qu'ils essaient d'y accéder, il auront une erreur. Heureusement, il existe une parade simple: le responsable du site peut mettre en place une redirection de l'ancienne URL vers la nouvelle. Le navigateur suivra magiquement ce chemin, le client accèdera à sa ressource et la nouvelle URL apparaitra dans la barre du navigateur.
Il peut y avoir d'autres scenarii ou une redirection peut être utile, mais le principe de fonctionnement reste le même.
Techniquement une redirection se gère au niveau du protocole HTTP. Lorsque le navigateur contacte le serveur Web sur une "ancienne" URL, celui-ci répond avec un code HTTP précis (301 ou 302) et il indique aussi la "nouvelle" URL (grâce au champs HTTP Location)
Quelle type de redirection choisir pour mon site ?
Il existe 2 types de redirection en fonction du code HTTP de la réponse:
- 301 "Moved permanently" : c'est une redirection permanente vers une URL indiquée dans la réponse (champs 'Location'). Cette redirection est considérée comme 'Google Friendly' et n'affecte pas votre référencement naturel (SEO)
- 302 "Moved temporarily" : c'est une redirection temporaire vers une URL indiquée. C'est moins apprécié par Google
Comment faire une redirection ?
Techniquement il y a plusieurs façons de mettre en place une redirection. Cela dépend de votre besoin, de vos ressources techniques et de la modularité qu'offre votre plateforme Web. La redirection peut être faite à quatre niveaux différents :
- au niveau du registrar (c'est la société qui gère votre nom de domaine, par exemple Gandi). La plupart des Registrars permettent via leur interface de gestion de mettre en place des redirections Web. C'est surtout utile pour rediriger globalement tout un domaine vers un autre (par exemple rediriger www.test.com vers beta.test.com). Pas besoin de savoir programmer pour mettre en place ce type de redirection.
- au niveau du serveur Web (par exemple Apache ou IIS) : il est possible de configurer des redirections de manière logicielle en changeant les fichiers de configuration du serveur Web utilisé (.htaccess, httpd.conf par exemple avec Apache). Il faut des connaissances d'administration des serveurs pour mettre en place ce type de redirection. Cette méthode est assez souple notamment grâce à la puissance des expressions régulières.
- par programmation côté Serveur (avec un langage tel que PHP, ASP...). Dans ce cas il faut des connaissances de développements Web de base pour les mettre en place. Cette méthode est puissante mais parfois moins souple que la précédente (notamment parce qu'il faut faire intervenir un développeur à chaque mise en place)
- par programmation côté Client (en Javascript). Cette méthode est utile lorsque qu'une action de l'utilisateur doit mener vers une nouvelle page. Mais elle est à déconseiller dans le cadre d'une redirection systématique car elle n'utilise pas le mécanisme standard de redirection au niveau HTTP (301, 302). Un robot d'indexation ne saura pas forcément bien l'interpréter.
Ne pas confondre Redirection d'URLs et URL Rewriting
Une redirection d'URL est visible pour l'utilisateur puisque l'URL change dans la barre du navigateur. Au contraire, un URL Rewriting est invisible pour l'utilisateur final, c'est une réécriture d'URL interne au serveur web (voir l'article sur les URLs pour une description plus précise)