Comment créer des redirections avec PrestaShop ? (3 méthodes)

Comment créer des redirections avec PrestaShop ?

Aussi bien pour vos clients que pour le SEO de votre boutique PrestaShop il est important que vous sachiez créer et gérer vos redirections.

Vous découvrirez ici 3 méthodes pour créer vos redirections avec leurs avantages et leurs inconvénients.

Avant de débuter votre lecture, si vous souhaitez améliorer le SEO de votre boutique en ligne, téléchargez gratuitement notre livre blanc seo.

Livre blanc seo

SOMMAIRE :

Méthode facile : Utiliser un module de redirection !

Avantages : simple, rapide, sans risque.

Défaut : Vous devez acheter un module.

Comme beaucoup de chose sur Prestashop qui peuvent se faire gratuitement, il existe des modules pour vous faire gagner du temps et vous évitez de nombreux problèmes.

C’est le cas de notre module de redirection pour PrestaShop : easy redirect.

Comme son nom l’indique, il vous permet de créer rapidement, simplement et sans risque des redirections pour votre boutique PrestaShop.

Le module vous permet de : 

  • Créer, supprimer, modifier vos redirections
  • Créer des redirections 301 (permanentes) ou des redirections 302 (temporaires).
  • Importer vos redirections en masse via un fichier CSV.
  • Exporter vos redirections pour les sauvegarder si besoin.
  • Activer ou désactiver une redirection en un clic sans la supprimer.

Voici une vidéo de présentation du module : 

Méthode intermédiaire : Utiliser la commande RedirectPermanent

Avantages : gratuite, peu complexe

Défauts : risque de planter l’intégralité du site, inadapté si vous avez beaucoup de redirections.

Pour utiliser la commande “RedirectPermanent” vous aurez besoin de modifier le fichier htaccess de votre Prestashop.

Ce fichier se trouve à la racine de votre site et devrait être accessible depuis votre logiciel FTP.

Comment créer une redirection sur Prestashop avec redirectPermanent ?

1) Rendez-vous sur votre FTP et ouvrez le fichier htaccess à l’aide d’un éditeur de texte.

2) Ajoutez la ligne suivante :

RedirectPermanent /url-a-rediriger.html http://www.votresite.com/url-de-destination.html

3) Sauvegarder votre fichier et renvoyez-le sur votre FTP.

Attention, une simple faute de frappe dans le fichier htaccess et c’est tout votre site qui sera inaccessible. Pensez donc à faire une sauvegarde du fichier pour pouvoir revenir en arrière en cas d’erreur.

Méthode avancée :  utiliser les expressions régulières.

Avantages : gratuite, permet de rediriger des milliers d’urls en une ligne.

Défauts : risque de planter l’intégralité du site, complexe à mettre en place.

Bien que puissante, les expressions régulières risquent de vous donner pas mal de fil à retordre.

En effet, c’est un langage bien particulier qui demande une bonne dose d’apprentissage et beaucoup de concentration.

Le plus simple, c’est sans doute de vous montrer à quoi ressemble une expression régulière.

En voici une :

#^[a-zA-Z-]+@[a-zA-Z-]+\.[a-zA-Z]{2,6}$#

Sympa non ?

Le gros intérêt des expressions régulières, c’est qu’elle permette de reconnaître des “modèles” d’url ce qui permet en une ligne de code de créer des milliers de redirections.

On peut par exemple demander à ce que toutes les urls contenant le dossier “tennis” soient redirigées vers une url identique, mais dans le dossier “basket”.

Pratique, si vous avez 5000 paires de basket pour lesquelles vous souhaitez modifier l’url.

Vous faire un cours complet sur les expressions régulières serait beaucoup trop long. 

Si c’est la méthode que vous souhaitez utiliser, je vous conseille de lire cet excellent article.

Comment créer une redirection 301 avec les expressions régulières.

Il existe deux méthodes, qui ont toutes deux les mêmes avantages et défauts (ceux cités un peu plus haut 😄).

Utiliser les expressions régulières avec Htacess.

1) Rendez-vous sur votre FTP et ouvrez le fichier .htacess avec un editeur de texte.

2) Ensuite, vous devez vérifier que la ligne suivante est bien présente dans votre fichier htacess : 

RewriteEngine On

Cette ligne permet d’activer la réécriture d’url, nécessaire pour l’utilisation des expressions régulières.

Si vous avez activé l’option “Url simplifiée” dans “Paramètres de la boutique > Traffic et SEO” cette ligne devrait déjà être présente.

3) Ajoutez votre règle de réécriture en utilisant la commande “RewriteRule” et votre expression régulière.

Voici un exemple de ce que ça peut donner :

RewriteRule ^actu/(.+?)(-[0-9]+)?$ /blog/$1 [L,R=301]

Ici par exemple, on redirige toutes les urls qui ont le dossier “actu” vers les mêmes urls vers le dossier “blog”.

Utiliser les expressions régulières dans php.

Pour ça il faut faire un override du FrontController de Prestashop.

Si vous ne savez pas ce qu’est un controller ou/et un override, je vous suggère de lire la documentation officielle de prestashop sur les controller ici.

1) Vous devez créer (ou modifier s’il existe déjà) le fichier : “/override/classes/controller/FrontController.php”

2) Et y ajouter le code suivant : 

class FrontController extends FrontControllerCore
{    
    public function initContent()
    {
        // PHP REGEX REDIRECT
		$base_url = "https://$_SERVER[HTTP_HOST]";
		$request_uri = "$_SERVER[REQUEST_URI]";
		$redirect_targets = array(
			'#^/brand/([\d]{1,})+[-]+([\w]{1,})$#i' => '/$1_$2',
			'#^/marques/([\d]{1,})+[-]+([-]|[\w]{1,})$#i' => '/$1-$2',
		);
		foreach ($redirect_targets as $pattern => $redirect) {
			if ( preg_match( $pattern, $request_uri ) ) {
				$new_request_uri = preg_replace( $pattern, $redirect, $request_uri );
				$new_url = 'https://'.$_SERVER['HTTP_HOST'].$new_request_uri;
				header( 'HTTP/1.0 301 Moved Permanently' );
				header( 'Location: '.$new_url );
				exit();
			}
		}
		parent::initContent();
    }
}

Source du code Arnaud Merigeau (merci 😉) !

3) C’est dans la partie de code ci-dessous qu’il faudra ajouter vos expressions régulières pour créer les différentes règles de redirections que vous souhaitez mettre en place : 

$redirect_targets = array(
'#^/brand/([\d]{1,})+[-]+([\w]{1,})$#i' => '/$1_$2',
	'#^/marques/([\d]{1,})+[-]+([-]|[\w]{1,})$#i' => '/$1-$2',
);

Ici par exemple la première ligne redirigera les urls de la forme :
« https://www.votresite.com/brand/12-marquelambda »

vers des urls de la forme :
« https://www.votresite.com/12_marquelambda ».

Conclusion : quelle méthode choisir pour la mise en place de vos redirections sur Prestashop ?

Voici le conseille que je donne a tous les ecommerçants que je forme : “Ne perdez pas de temps à faire de la technique, ce n’est pas votre job !”.

Vous avez bien mieux à faire que de passer des heures à comprendre comment fonctionne les expressions régulières ou les controllers de Prestashop.

Dépenser quelques dizaines d’euros dans un module pour gagner des heures de travail et ne pas prendre le risque de planter votre boutique est un investissement rentable et intelligent !

Donc à moins d’être développeur et de devoir mettre les mains dans le cambouis pour vous former, préférez clairement l’installation d’un module de redirection.

Et pour ne rien gâcher, notre module de redirection pour Prestashop est, comme tous nos modules, garantie 60 jours satisfait ou remboursé sans condition. 

Vous ne prenez donc aucun risque 😉.

Questions fréquentes à propos des redirections sur Prestashop.

J’ai le message d’erreur err_too_many_redirects, pourquoi ?
Vous avez créé une boucle de redirection ce qui signifie que l’url A redirige vers l’url B qui elle-même redirige vers l’url A.

Supprimé une des deux redirections et cela devrait résoudre votre problème.

J’ai modifié mon Htaccess et j’ai une erreur 500, pourquoi ?
La moindre faute de frappe dans votre fichier Htaccess aura pour conséquence d’afficher une erreur 500 et de rendre votre site indisponible.

Ayez toujours une version fonctionnelle de votre Htacess pour la réutiliser au cas où vous auriez fait une erreur lors de vos modifications.

Comment vérifier que ma redirection fonctionne ?
Le moyen simple est de taper l’ancienne url dans votre navigateur et de regarder si c’est bien la nouvelle url qui apparaît.

Cependant, cela ne vous permet pas de vérifier si le code envoyer est bien un code 301 (ce qui est important pour votre référencement).

Vous trouverez dans notre guide complet sur les redirections 301, un outil pour tester vos redirections.

Subscribe
Recevoir un email pour
guest

0 Commentaires
Inline Feedbacks
View all comments