0

I have installed the latest version of Prestashop in a FreeBSD 12 with NGINX and MySQL. Installation ran flawless, however I'm having some issues with Prestashop URLs.

The frontshop works flawless, but the admin area some links works and other give me error 404.

On menu items that have the url like this:

http://store.mysite.com/admin012m0ojju/index.php?controller=AdminContacts&token=c931df617c24255d7b5eafd4d48aXXXX

The admin area works perfectly, HOWEVER, with menu items with links like this:

http://store.mysite.com/admin012m0ojju/index.php/configure/shop/customer-preferences/?_token=7t4DT8jf-KWSBXxegnntVE6gO7hpRieXVem-XXXX

I get a 404 page.

It is obvious something is wrong with URL Rewrites in NGINX, but after several hours on google and researching I decided to ask for help...

This is my nginx.conf section

upstream fastcgi_backend {
       server   unix:/var/run/php-fpm.sock;
    } 

server {
            listen 80;
            listen 443 ssl;
            ssl_certificate         /usr/local/etc/letsencrypt/live/store.mysite.com/fullchain.pem;
            ssl_certificate_key     /usr/local/etc/letsencrypt/live/store.mysite.com/privkey.pem;
            server_name store.mysite.com;
            index index.php index.html index.htm;
            root /var/www/prestashop;  
            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;  
            }
            location ~ \.php$ {
                    root    /var/www/prestashop;
                    fastcgi_pass   fastcgi_backend;
                    fastcgi_index  index.php;
                    #fastcgi_param SCRIPT_FILENAME $request_filename;    
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    #fastcgi_param REQUEST_URI $uri?$args;
                    include        fastcgi_params;
            }
        }

Does anyone have any clue on how to fix the rewrites?

1 Answer 1

0

After banging my head seems like I have fixed the issue:

Added this to my nginx.conf:

location ~ /(sell|improve|configure|international|_profiler|product|feature|attribute|supplier|combination|specific-price)/(.*)$ {
      try_files $uri $uri/ /index.php?q=$uri&$args $admin_dir/index.php$is_args$args;
    }

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .