Procédure
Prezentacja
Niedawno zaktualizowaliśmy naszą ofertę VPS o pakiet ISPconfig działający na serwerze WWW Nginx zamiastApache. Wybór był podyktowany faktem, że jest on lekki i szybki.
Kiedy jednak wdrożyliśmy go w sklepie Prestashop, natknęliśmy się na jedno z ograniczeń Nginx: nie obsługuje on plików .htaccess.
W rezultacie nie można aktywować funkcji"uproszczonych adresów URL" z zaplecza, tak jak w przypadku Apache.
Przyjrzyjmy się, jak rozwiązać ten problem.
Połączenie przez SSH
Pierwszą rzeczą do zrobienia jest uzyskanie identyfikatorów SSH(Jak połączyć się jako root na dedykowanym serwerze VPS) i połączenie się z serwerem VPS.
Zmodyfikuj konfigurację Nginx
Edytuj plik /etc/nginx/sites-available/my_site.com.vhost za pomocą polecenia :
nano /etc/nginx/sites-available/my_site.com.vhost
Następnie dodaj następujące wiersze między znacznikami"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;
}
Ponowne uruchomienie usługi Nginx
Aby to zrobić, wystarczy użyć polecenia :
/etc/init.d/nginx restart
Testowanie funkcji "Uproszczone adresy URL"
Aktywuj funkcję "Uproszczone adresy URL" w swoim biurze Prestaphop (Preferencje => SEO i adresy URL):
Wpisz w przeglądarce adres URL: http: //mon_site.com/index.php?id_product=4&controller=product
![]()
staje się: http: //mon_site.com/robes-soiree/4-robe-imprimee.html
Przepisywanie adresów URL działa dobrze.
![]()