Une des demandes que je vois le plus passer est la refonte de site web sous PrestaShop et la plupart du temps aucun plan de redirection n’est défini ! Ceci signifie que les urls de ta boutique avant refonte risquent aboutir à des erreurs 404 fatales pour ton référencement. C’est pour ça qu’on va voir comment créer une redirection dans cet article !
Je vais te donner 2 manières de créer une redirection manuelles pour ta boutique.
Puis je vais aussi te donner une troisième manière de créer une redirection, c’est le bonus !
Méthode 1 : Comment créer une redirection 301 via .htaccess avec PrestaShop ?
Pour ce faire tu dois te connecter en FTP à ton serveur puis tu dois ouvrir le fichier .htaccess qui se situe dans le dossier racine souvent nommé /www/.
Avec ton éditeur préféré, tu dois ensuite ajouter une ligne par redirection d’url au début du fichier sous la forme :
Dans cet exemple, on va simplement rediriger l’url https://www.monsiteweb.com/dossier/ancienne-url.html vers l’url https://www.monsiteweb.com/dossier/nouvelle-url.html.
Une fois la redirection mise en place, tu dois tester celle-ci pour éviter les erreurs 500 (pages blanches), et les erreurs 404 (pages introuvables). Je te donne le lien d’un outil que j’utilise à la fin de cet article 😉
Méthode 2 : Comment créer une redirection 301 via un module PrestaShop ?
Je vais te donner ici un lien vers un module que j’utilise sur certains projets car il est simple et rapide à utiliser.
Tu peux acheter et télécharger le module PrestaShop en cliquant ici : Module de redirection PrestaShop.
Plutôt qu’un long discours, voici une capture d’écran pour illustrer l’utilisation back office.
Tu as compris : c’est TRÈS SIMPLE à utiliser puisqu’il suffit de saisir dans le back office de PrestaShop l’url source et l’url cible et c’est tout !
Oui mais…
Il y a un “mais”car si tu as des centaines ou des milliers de redirections à créer, ça va te prendre beaucoup de temps !
C’est pour cette raison que je vais te montrer une troisième méthode pour créer des redirections.
Cette troisième méthode est un peu plus technique mais aussi plus puissante.
Ok mais pourquoi ?
Et bien parce que cette 3ème façon de créer des redirections te permet par exemple en 1 ligne de code de rediriger des centaines ou des milliers d’urls !
Méthode 3 : comment créer des redirections 301 avec expressions régulières dans PrestaShop ?
Cette méthode est finalement assez simple à mettre en place tu vas voir.
Ce qui fait mal à la tête : c’est les expressions régulières !
Qu’est-ce qu’une une expression régulière ?
Si tu ne sais pas encore ce qu’est une expression régulière, je t’invite à lire l’article de Open Class Room ou encore cet article https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres
Comment tester une expression régulière regex ?
A présent, tu as révisé tes bases avec Open Class Room et tu sais comment construire une expression régulière.
J’utilise cet outil pour créer et tester les expressions régulières que je développe pour mes projets : https://regex101.com
Les informations essentielles sont présentes directement. Tu peux saisir ton expression régulière et ta chaîne de caractères à tester, puis retrouver à droite le détail de ton expression régulière ; le tout est instantané avec des couleurs pour plus de lisibilité.
Comment créer des redirections 301 avec expressions régulières dans PrestaShop ?
Pour créer une redirection 301 avec expression régulière dans PrestaShop tu dois créer ou modifier l’override /www/override/classes/controller/FrontController.php comme ceci :
Pour information, j’ai testé cet override sur PrestaShop 1.7.6.1.
On retrouve $redirect_targets qui est un tableau contenant les différentes règles :
- règle #1 : ‘#^/brand/([\d]{1,})+[-]+([\w]{1,})$#i’ => ‘/$1_$2’
- règle #2 : ‘#^/marques/([\d]{1,})+[-]+([-]|[\w]{1,})$#i’ => ‘/$1-$2’
La règle #1 redirige les urls de la forme https://www.monsite.fr/brand/3-mamarque vers des urls sous la forme https://www.monsite.fr/3_mamarque.
Le GROS avantage de cette solution : avec 2 lignes, je peux créer des milliers de redirections 301 sans effort et sans avoir autant de lignes que de redirections dans le fichier .htaccess.
Comment tester une redirection 301 saisie dans le .htaccess ?
Une fois que toutes tes redirections 301 sont en place, je te conseille de tester ces redirections pour être certain qu’aucune erreur 404 ou 500 ne viendra pénaliser ton référencement.
J’utilise cet outil https://htaccess.madewithlove.be qui fonctionne de la sorte :
- tu saisis l’url source
- tu saisis le contenu de ton fichier .htaccess
- tu valides et l’outil t’indique vers quelle url l’internaute est redirigé
J’espère que ce tutoriel référencement pour PrestaShop t’a plu et qu’il t’aura été utile.
Bonjour Arnaud, merci pour ces infos.
J’ai besoin de faire une redirection du répertoire d’image car il y a un format que je n’ai plus, ce qui me provoque des 404.
Comment m’y prendre pour faire une redirection 301 dans le fichier .htaccess
merci pour ton aide 😉
Bonjour Mélanie,
Tout dépend de la redirection précise à effectuer.
Tu peux utiliser cet outil pour t’aider : https://www.301-redirect.online/htaccess-redirectmatch-generator
Bon courage 🙂
Bonjour Arnaud,
Juste une suggestion d’optimisation sur le code que tu proposes dans la méthode 3.
Il faut mieux faire quelque chose comme :
public function initContent()
{
le code relatif aux redirections avec REGEX
parent::initContent();
}
La surcharge sera ainsi insensible aux changements éventuels de code dans la méthode initContent() de la classe FrontController et donc aux différentes versions de PS.
Au plaisir,
Yann
Bonjour Yann,
Merci pour ton retour, j’ai mis à jour l’article 😉