Procédure
Apresentação
Recentemente, actualizámos as nossas ofertas de VPS para incluir um pacote ISPconfig executado no servidor Web Nginx em vez doApache. A escolha baseou-se no facto de ser leve e rápido.
Mas depois de o implementarmos com uma loja Prestashop, deparámo-nos com uma das limitações do Nginx: não suporta ficheiros .htaccess.
Consequentemente, não é possível ativar a função"URLs simplificados" a partir do seu back office, como acontece com o Apache.
Vamos ver como resolver este problema.
Ligação via SSH
A primeira coisa a fazer é obter os seus identificadores SSH(Como ligar-se como root num servidor VPS dedicado) e ligar-se ao seu VPS.
Modificar a configuração do Nginx
Edite o ficheiro /etc/nginx/sites-available/my_site.com.vhost com o comando :
nano /etc/nginx/sites-available/my_site.com.vhost
Em seguida, adicione as seguintes linhas entre as etiquetas"server {}":
localização / {
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
reescrever ^/([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;
reescrever ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
reescrever ^/c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$ /img/c/$1.jpg last;
reescrever ^/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /img/c/$1$2.jpg last;
try_files $uri $uri/ /index.php?$args;
}
Reiniciando o serviço Nginx
Para fazer isso, basta usar o comando :
/etc/init.d/nginx restart
Testar a função "URLs simplificados
Active a função"URLs Simplificados" a partir do seu backoffice Prestaphop (Preferências => SEO & URLs):
No seu navegador, o URL: http: //mon_site.com/index.php?id_product=4&controller=product
![]()
passa a ser: http: //mon_site.com/robes-soiree/4-robe-imprimee.html
A reescrita de URL funciona bem.
![]()