À propos des redirections .htaccess
Quand utiliser des redirections
Chaque fois qu’une URL change. Une refonte, une restructuration, un passage à HTTPS ou la fusion d’une page avec une autre : chacun de ces changements laisse une ancienne adresse que les internautes et les moteurs de recherche possèdent encore.
Une redirection les envoie vers la nouvelle page et, lorsqu’elle est correctement configurée, transfère les signaux de classement acquis par l’ancienne URL. Si vous l’ignorez, ces signaux sont perdus, tout comme les visiteurs qui suivent un ancien lien.
Ce générateur transforme une liste d’anciennes et de nouvelles URL en règles .htaccess qui s’en chargent.
Quel code 3xx utiliser
Une 301 indique que le déplacement est permanent. Les moteurs de recherche transfèrent les signaux de l’ancienne URL vers la nouvelle et finissent par supprimer l’ancienne adresse de leur index. C’est ce qu’il faut utiliser dans presque tous les cas.
Une redirection 302 indique que le déplacement est temporaire. L’ancienne URL reste indexée et conserve ses signaux, ce qui convient pour une page de maintenance ou une promotion saisonnière, mais pas pour le reste. Une redirection 302 laissée en place pendant des mois est l’un des moyens les plus discrets de perdre des positions, car rien ne semble défaillant.
Les codes 307 et 308 sont les équivalents plus récents des codes 302 et 301. Les moteurs de recherche les traitent de la même manière, et la différence est technique : ils préservent la méthode de la requête d’origine, de sorte qu’une requête POST de formulaire arrive à la nouvelle URL en tant que POST au lieu d’être convertie en GET. Cela est important pour les API et les gestionnaires de formulaires, mais rarement pour les pages ordinaires. Apache doit être en version 2.4 ou ultérieure pour servir une redirection 308.
Le reste de la plage 3xx n’est pas destiné à cela. Les codes 300 et 305 sont pratiquement inutilisés, le code 304 est une réponse de mise en cache plutôt qu’une redirection, et le code 303 sert à envoyer un navigateur vers une page de confirmation après l’envoi d’un formulaire : aucun d’eux ne doit figurer dans un fichier de redirections.
Comment fonctionne réellement la mise en correspondance
La redirection s’applique au début du chemin plutôt qu’à l’ensemble de celui-ci. Une règle pour /blog intercepte également /blog/post et /blog/category/thing, même si rien n’est spécifié pour ces URL. C’est utile une fois qu’on le sait, mais surprenant lorsqu’on l’ignore, car une règle générale placée au-dessus d’une règle spécifique rend cette dernière inapplicable.
Ce même comportement permet de déplacer un domaine entier : une seule règle utilisant / comme ancienne adresse intercepte toutes les pages du site. Faites-la pointer vers la racine du nouveau domaine et chaque URL suivra.
Ce que Redirect ne comprend pas, ce sont les modèles. Il n’y a pas de caractères génériques ici : /* est donc interprété comme un chemin littéral et ne correspond à rien — la correspondance par préfixe s’en charge déjà. Lorsque vous avez réellement besoin d’un modèle, RedirectMatch utilise à la place une expression régulière ; il ne vaut la peine d’y recourir que lorsqu’un préfixe ne suffit pas.
Erreurs courantes
- Rediriger tout vers la page d’accueil, ce qui est interprété comme une soft 404 et n’aide personne.
- Les chaînes de redirections, où A redirige vers B, qui redirige vers C. Faites pointer chaque ancienne URL vers la destination finale.
- Les boucles, où deux règles renvoient le trafic de l’une à l’autre jusqu’à ce que le navigateur abandonne.
- Rediriger vers une page qui ne constitue pas un remplacement pertinent de l’ancienne.
- Modifier le fichier .htaccess sans sauvegarde. Une erreur de syntaxe peut rendre l’ensemble du site indisponible.
Où placer ces règles
.htaccess est un fichier de configuration Apache situé à la racine de votre site. LiteSpeed le lit également ; Nginx, en revanche, ne le prend pas en charge et nécessite sa propre syntaxe dans la configuration du serveur.
Les règles sont appliquées dans l’ordre. Placez donc les redirections spécifiques avant les redirections générales. Conservez une copie du fichier fonctionnel avant toute modification, car une erreur à cet endroit renvoie une erreur 500 pour chaque page au lieu d’échouer silencieusement.
Pour une poignée d’URL, ce fichier est l’endroit idéal. Pour des centaines d’URL, un plugin ou une règle pilotée par une base de données est plus facile à maintenir qu’un fichier que personne ne veut ouvrir.
Utilisation du générateur de redirections .htaccess
Choisissez le type de redirection, ajoutez une ligne pour chaque URL ayant changé, puis téléchargez ou copiez les règles. Les anciens chemins sont relatifs à votre domaine ; les destinations doivent être des URL complètes.
Testez-en quelques-unes manuellement ensuite. Une redirection qui fonctionne dans un navigateur, mais renvoie un code d’état incorrect, vous prive tout de même des signaux qu’elle était censée transmettre.
Pour aller plus loin
Vérifiez que les règles fonctionnent comme prévu avec notre
vérificateur de redirections, qui suit chaque redirection et affiche les codes d’état. Confirmez que la destination renvoie un
code de statut 200, puis créez le reste de votre configuration avec le générateur
.htaccess.