Générer le fichier .htaccess par Prestashop pour avoir des URLs simplifiées

Le fichier .htaccess placé à la racine de votre site va permettre de positionner certaines variables telles que la version de PHP et de gérer la ré-écriture d'URL (URL rewriting), les accès à certains répertoires et autres actions.

TRES IMPORTANT:

Première chose: S'il existe déjà, faire une sauvegarde de l'ancien .htaccess qui est actif en ligne ou en local.

En ligne

S'assurer que l'hébergeur de son serveur autorise la ré-écriture d'URL (URL rewriting).

En local

Sous Windows avec WAMP:

  1. Click gauche sur l'icône WAMPSERVER

  2. Menu Apache -> Apache modules

  3. Cocher rewrite modules

  4. Redémarrer le serveur Apache (c'est souvent automatique)

Une fois qu'Apache est bien configuré, si le fichier .htaccess n'existe pas, créez en un vide dans le dossier racine de votre boutique prestashop :

POUR CELA:

  • Sous windows, créer un fichier vide avec le blocnote, le sauvegarder en fichier .htaccess* (Attention à ne pas rajouter l'extension .txt et à bien le sauvegarder en ANSI).

  • téléchargez le sur votre serveur par ftp à la racine de votre boutique.*

Lui donner les permissions Read et Write (CHMOD 666 sur les systèmes Unix à l'aide d'un client ftp par exemple)

Allez dans le BackOffice de Prestashop, onglet Préférences et sélectionnez URL simplifiée OUI

Allez dans le Back Office de Prestashop, Onglet Outils - Générateurs

Cliquez sur le bouton "Générer le fichier .htaccess"

ATTENTION cela écrase l'ancien et vous avez sans doute une page blanche qui s'affiche sur vos front office et back office car les anciennes instructions ont été écrasées.

Remettre les informations de l'ancien (tels les positionnements de variable de version de PHP) que vous avez sauvegardées et les mixer avec le nouveau.

Les URLs devraient être ré-écrites.

Une fois cette fonction activée, les URLs de vos pages vont passer d’une structure semblable à celle-ci :

http://www.maboutique.com/product.php?id_product=2

...à celle-ci :

http://www.maboutique.com/musique-ipods/2-ipod-shuffle.html

ce qui devrait grandement améliorer votre référencement.

Exemple de fichier .htaccess

SetEnv PHP_VER 5SetEnv REGISTER_GLOBALS 0 Options All -Indexes<FilesMatch "\.(inc|tpl|h|ihtml|sql|ini|conf|class|bin|spd|themes|modules|exe|asa)$"> Order Deny,Allow Deny from all</FilesMatch> RewriteEngine on RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$3&isolang;=$1$5 [L,E]RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2&isolang;=$1$4 [L,E]RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$2&isolang;=$1 [QSA,L,E]RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /supplier.php?id_supplier=$1$3 [QSA,L,E]RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E] ErrorDocument 404 /404.php

Last updated