Comment activer les URL's simplifiées de Prestashop avec ma formule ISPconfig + Nginx


Définition

Présentation

Récemment nous avons mis à jour nos offres VPS en proposant une formule ISPconfig tournant avec le serveur Web Nginx au lieu d'Apache. Le choix s'est fait sur le fait qu'il soit léger et rapide.

Seulement une fois mis en oeuvre avec une boutique Prestashop, nous nous heurtons à une des limitations de Nginx, le fait qu'il ne supporte pas les fichier .htaccess.

De ce fait il vous est impossible d'activer la fonction "URL's simplifiées" depuis votre backoffice, comme vous le faisiez avec Apache.

Voyons comment faire pour remédier à ce problème.

 

Procédure

Se connecter en SSH

La première chose à faire est de mettre la main sur vos identifiants SSH (https://aide.lws.fr/base/Serveurs-dedies/SSH/Comment-se-connecter-en-root-sur-un-serveur-dedie-VPS) et de vous connectez à votre VPS.

 

Modifier la configuration de Nginx

Editez le fichier /etc/nginx/sites-available/mon_site.com.vhost avec la commande :

nano /etc/nginx/sites-available/mon_site.com.vhost

 

Puis ajoutez les lignes suivantes entre les balises "server {}" :

location / {
 
  rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
  rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$1$2.jpg last;
  rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
  rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
  rewrite ^/c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$ /img/c/$1.jpg last;
  rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
  try_files $uri $uri/ /index.php?$args;
}

 

Relancer le service Nginx

Pour cela il suffit d'utiliser la commande :

/etc/init.d/nginx restart

 

Tester la fonction "URL's simplifiées"

Activez la fonction "URL simplifiée" depuis votre backoffice Prestaphop (Préférences => SEO & URL):

Comment activer les URL's simplifiées de Prestashop avec ma formule ISPconfig + Nginx

 

Dans votre navigateur l'URL : http://mon_site.com/index.php?id_product=4&controller=product

Comment activer les URL's simplifiées de Prestashop avec ma formule ISPconfig + Nginx

 

Devient : http://mon_site.com/robes-soiree/4-robe-imprimee.html

Comment activer les URL's simplifiées de Prestashop avec ma formule ISPconfig + Nginx

 

La réécriture d'URL fonctionne bien.

Notez cet article

Vous avez noté 0 étoile(s)

Cet article a été lu 1661 fois.

Note : 5 / 5 - 1 avis.


Cet article vous a t'il été utile ?

Merci !

N'hésitez pas à commenter nos pages afin de nous aider à les améliorer si besoin.

Nous sommes désolés

Comment pouvons-nous l'améliorer ? (Indiquez votre addresse mail dans le corps du message si vous désirez recevoir une réponse)

Si vous désirez recevoir une réponse, merci d'indiquer votre mail dans votre commentaire.

comments powered by Disqus
Top