Redirections .htaccess
par JF · Publié · Mis à jour
Il existe différentes manières de faire des redirections via le fichier .htaccess.
Vous trouverez ci-dessous, certains cas de figures complexes.
Pour le SEO, il est préférable de régler vos problèmes de redirections autrement.
Soit directement dans votre sitemap et sur votre console (google search …), soit directement dans les fichiers de votre site ou votre CMS.
Redirection basique
RewriteEngine On
RewriteRule .* page.extension
.* = toutes les pages vers une autre page
RewriteRule dossier /sous-dossier/page.extension
Ici on redirige toutes les requêtes /dossier vers /sous-dossier/page
Redirection répertoire
Ici on va chercher à rediriger le répertoire /faq/1 et toutes les urls à l’intérieur :
/faq/1/ vers https://url/dossier1
/faq/1/page-de-test.php vers https://url/dossier1
/faq/1/sous-rep1/ vers https://url/dossier1
/faq/1/sous-rep1/page-de-test2.php vers https://url/dossier1
RedirectMatch 301 ^/faq/1/.* https://url/dossier1
^/faq/1 : Le « ^ » Permet de spécifier que seront prises en compte toutes les URL dont la partie hors domaine (www.url.test) commence par « /faq/1 »
faq/1/.* : Permet de spécifier « tout ». Cela permet d’englober tout ce qui peut se trouve dans le répertoire visé.
Explication :
le « . » signifie « n’importe quel caractère »
et le « * » spécifie « X fois ce qui précède ». Donc X fois n’importe quel caractère.
Redirections d’un dossier sans rediriger les pages contenues dans celui-ci :
RedirectMatch 301 /dossier/sous-dossier/?$ https://www.url.fr/dossier
Ici, on ne met pas de ^ avant l’url à rediriger et un / + ? + $ à la fin.
Exemple :
suppression du répertoire virtuel /rep-virtuel/
/nos-solutions/maison-individuelle/tuber/rep-virtuel vers /nos-solutions/maison-individuelle/tuber
en gardant le répertoire dans les url produits :
/nos-solutions/maison-individuelle/tuber/rep-virtuel/produit.page
RedirectMatch 301 /nos-solutions/maison-individuelle/tuber/rep-virtuel/?$ https://www.url.fr/nos-solutions/maison-individuelle/tuber
Redirections caractères spéciaux
Exemple :
http://www.url.fr/inhoud/321/38/1/Actualit%C3%A9s/Producten+en+diensten/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html
Le problème ici sont les %C3%A9 (code html du é) et les +
Plusieurs méthodes (préférez la 1ère méthode):
RedirectMatch 301 ^/inhoud/321/38/1/A.*/P.*/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html https://nouvelle_url
RedirectMatch 301 'http://www.url.fr/inhoud/321/38/1/Actualit%C3%A9s/Producten+en+diensten/combiflue-4-in-1-schoorsteen-voor-de-individuele-woning.html' https://nouvelle_url
Dans la première solution, on utilise la règle des . et des *, vu au début de l’article.
Dans la seconde solution, on entoure l’url à rediriger par des ‘ ‘.
Cette solution marche également pour les urls de destinations.
Redirect, Redirect Match, RedirectPermanent
Il est à noté qu’il existe différente manière selon le besoin de faire une redirection sur Apache.
Redirect : Envoie une redirection externe demandant au client d’effectuer une autre requête avec une URL différente
RedirectMatch : Envoie une redirection externe faisant appel aux expressions rationnelles pour la mise en correspondance de l’URL courante
RedirectPermanent : Envoie une redirection externe permanente demandant au client d’effectuer une nouvelle requête avec une URL différente.
Pour aller plus loin, référez-vous à la documentation d’Apache.