Procédure
Presentatie
Onlangs hebben we ons VPS-aanbod uitgebreid met een ISPconfig-pakket dat draait op de Nginx webserver in plaats vanApache. De keuze was gebaseerd op het feit dat het licht en snel is.
Maar toen we het eenmaal hadden geïmplementeerd met een Prestashop-shop, stuitten we op een van de beperkingen van Nginx: het feit dat het geen .htaccess-bestanden ondersteunt.
Als gevolg daarvan kun je de"vereenvoudigde URL's" functie niet activeren vanuit je backoffice, zoals je dat wel kon met Apache.
Laten we eens kijken hoe we dit probleem kunnen verhelpen.
Verbinden via SSH
Het eerste wat u moet doen is uw SSH-identifiers bemachtigen(How to connect as root on a dedicated VPS server) en verbinding maken met uw VPS.
Wijzig de Nginx configuratie
Wijzig het bestand /etc/nginx/sites-available/my_site.com.vhost met het commando :
nano /etc/nginx/sites-available/my_site.com.vhost
Voeg vervolgens de volgende regels toe tussen de"server {}" tags:
location / {
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
herschrijven ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2.jpg laatste;
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;
herschrijven ^/c/([a-zA-Z-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1.jpg laatste;
herschrijf ^/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg laatste;
try_files $uri $uri/ /index.php?$args;
}
De Nginx-service opnieuw starten
Gebruik hiervoor het commando :
/etc/init.d/nginx restart
De functie "Vereenvoudigde URL's" testen
Activeer de functie"Vereenvoudigde URL's" vanuit uw Prestaphop backoffice(Voorkeuren => SEO & URL's):
In uw browser de URL: http: //mon_site.com/index.php?id_product=4&controller=product
![]()
worden: http: //mon_site.com/robes-soiree/4-robe-imprimee.html
URL herschrijven werkt goed.
![]()