Si vous travaillez fréquemment sur des sites et que vous suivez de près ce qui se passe au niveau des urls, vous savez que les redirections ne sont jamais loin 😉 Que ce soit pour l’internaute et son expérience de navigation, ou pour le moteur de recherche (SEO ;)) et votre visibilité, vous avez ou devrez toucher à cela.
Ci dessous, un petit récapitulatif des règles de redirections pour .htaccess, pour serveur Apache qui sont toujours utiles (et si vous souhaitez vous simplifier la vie, retrouver le Générateur de redirection 301 ici)
Redirections des urls http vers https
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
Redirections des urls sans www vers les urls avec www
RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule ^(.*)$ http://www.domaine.fr/$1 [R=301,L]
Redirection d’une url en 301
RewriteRule ^blablabla-1.html$ http://www.domaine.fr/blablabla-2.html? [R=301,L]
Redirection d’une url avec accent
RewriteRule ^blog/old-r(.*)-sur-le-truc$ /nouveau-lien/ [R=301,L]
On note ici qu’il faut utiliser la regex (.*) qui remplacera alors les caractères tel que %C3%A9 qui sont les parties accentuées de votre ancienne url à rediriger.
Redirection d’une url d’un ancien domaine vers un nouveau domaine, en 301
Redirect permanent /blablabla/ https://www.domaine.fr/blablabla/
Redirection de toutes les pages d’un domaine vers un autre
RewriteEngine on RewriteCond %{HTTP_HOST} ^anciendomaine\.fr$ [NC] RewriteRule ^(.*)$ https://www.nouveaudomaine.fr/$1 [R=301,L]
Redirection pour corriger les URL doublons / trailing slash
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ /$1 [R=301,L]
Ou pour l’ajout d’un slash
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
Redirection de pages spécifiques avec changement de structure de chemin
RewriteEngine on RewriteRule ^ancien-dossier/(.*)$ /nouveau-dossier/$1 [R=301,L]
Redirection de pages spécifiques avec changement de structure de chemin
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera mobile|palmos|webos" [NC] RewriteRule ^(.*)$ https://m.domaine.fr/$1 [R=301,L]
Bien entendu, il existe de très nombreuses autres règles qui peuvent être personnalisées selon vos envies et besoin. Il ne s’agit donc pas ici de les lister, mais plutôt de rappeler les plus récurrentes.
Enfin, le fichier .htaccess étant particulièrement sensible, on n’oubliera pas de tester l’intégration de nouvelles règles, afin de s’assurer notamment que le site ne soit pas cassé avec une belle erreur 500 😉