title: prestashop/nginx multi lang "no input file specified" on index.php request
body: <p>we have prestashop running smoothly on nginx; </p>
  
  <p>when we enabled multi language on the site, the below issue is faced:</p>
  
  <p>usually after payment, without multi lang, you are redirected back to this page:
  <a href="http://www.domain.com/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c04910968" rel="nofollow">http://www.domain.com/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c04910968</a></p>
  
  <p>on our apache environemnt, this works well</p>
  
  <p>on nginx,
  what happened when multi language was enabled is when you reach the above link, the lang parameter is added to the url (when it should not):</p>
  
  <p><a href="http://www.domain.com/en/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b" rel="nofollow">http://www.domain.com/en/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b</a></p>
  
  <p>or</p>
  
  <p><a href="http://www.domain.com/fr/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b" rel="nofollow">http://www.domain.com/fr/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b</a></p>
  
  <p>which causes the user to fall on a prestashop error "input file not specified"</p>
  
  <p>the above redirection should not happen, once an order is done, the following URL must work without redirection nor adding the 'en' or 'fr' code before index.php:</p>
  
  <p><a href="http://www.domain.com/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b" rel="nofollow">http://www.domain.com/index.php?controller=order-confirmation&amp;id_cart=21293&amp;id_module=83&amp;key=e1dbc21a0e7a8c049109689ecf36499b</a></p>
  
  <p>the nginx configuration is as follows:</p>
  
  <pre><code>    location /favicon {
              alias /var/www/vhosts/11footballclub.com/httpdocs/img/facicon.ico;
      }
  
        location / {
            index index.html index.htm index.php;
  
  
      try_files $uri $uri/ /index.php?$args;
        }
  
        location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
            access_log        off;
            log_not_found     off;
            expires           360d;
        }
  
        location ~ /\. {
            access_log off;
            log_not_found off;
            deny all;
        }
  
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }
  
        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }
  
        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/vhosts/11footballclub.com/httpdocs$fastcgi_script_name;
            fastcgi_param PHP_VALUE max_execution_time=180;
        }
  
        # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
  
  
  
        rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
  
        rewrite "^/c/([0-9]+)(\-[_a-zA-Z0-9-]*)/(.*)\.jpg$" /img/c/$1$2.jpg last;
        rewrite "^/c/([_a-zA-Z-]+)/(.*)\.jpg$" /img/c/$1.jpg last;
  
        rewrite "^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/(\P{M}\p{M}*)*\.jpg$" /img/p/$1-$2$3.jpg last;
        rewrite "^/([0-9]+)\-([0-9]+)/(\P{M}\p{M}*)*\.jpg$" /img/p/$1-$2.jpg last;
        rewrite "^/([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$1$2.jpg last;
        rewrite "^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$1$2$3.jpg last;
        rewrite "^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.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-]*)?/(\P{M}\p{M}*)*\.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-]*)?/(\P{M}\p{M}*)*\.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-]*)?/(\P{M}\p{M}*)*\.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-]*)?/(\P{M}\p{M}*)*\.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-]*)?/(\P{M}\p{M}*)*\.jpg$" /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
  
  
      #rewrite "^/index.php\?controller=http(.*)$" $1 last;
  
  
        rewrite "^/([0-9]+)\-(\P{M}\p{M}*)+\.html(.*)$" /index.php?controller=product&amp;id_product=$1$3 last;
        rewrite "^/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$" /index.php?controller=category&amp;id_category=$1$3 last;
        rewrite "^/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$" /index.php?controller=product&amp;id_product=$2$4 last;
        rewrite "^/([0-9]+)__([a-zA-Z0-9-]*)(.*)$" /index.php?controller=supplier&amp;id_supplier=$1$3 last;
        rewrite "^/([0-9]+)_([a-zA-Z0-9-]*)(.*)$" /index.php?controller=manufacturer&amp;id_manufacturer=$1$3 last;
        rewrite "^/content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$" /index.php?controller=cms&amp;id_cms=$1$3 last;
        rewrite "^/content/category/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$" /index.php?controller=cms&amp;id_cms_category=$1$3 last;
  
      rewrite "^/module/([_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)$" /index.php?fc=module&amp;module=$1&amp;controller=$2 last;
  
  
  
        rewrite ^/page-not-found$ /index.php?controller=404 last;
        rewrite ^/address$ /index.php?controller=address last;
        rewrite ^/addresses$ /index.php?controller=addresses last;
        rewrite ^/authentication$ /index.php?controller=authentication last;
        rewrite ^/best-sales$ /index.php?controller=best-sales last;
        rewrite ^/cart$ /index.php?controller=cart last;
        rewrite ^/contact-us$ /index.php?controller=contact-form last;
        rewrite ^/discount$ /index.php?controller=discount last;
        rewrite ^/guest-tracking$ /index.php?controller=guest-tracking last;
        rewrite ^/order-history$ /index.php?controller=history last;
        rewrite ^/identity$ /index.php?controller=identity last;
        rewrite ^/manufacturers$ /index.php?controller=manufacturer last;
        rewrite ^/my-account$ /index.php?controller=my-account last;
  
       rewrite ^/new-products$ /index.php?controller=new-products last;
        rewrite ^/order$ /index.php?controller=order last;
        rewrite ^/order-follow$ /index.php?controller=order-follow last;
        rewrite ^/quick-order$ /index.php?controller=order-opc last;
        rewrite ^/order-slip$ /index.php?controller=order-slip last;
        rewrite ^/password-recovery$ /index.php?controller=password last;
        rewrite ^/prices-drop$ /index.php?controller=prices-drop last;
        rewrite ^/search$ /index.php?controller=search last;
        rewrite ^/sitemap$ /index.php?controller=sitemap last;
        rewrite ^/stores$ /index.php?controller=stores last;
        rewrite ^/supplier$ /index.php?controller=supplier last;
  
        location ~* \.(gif)$ {
          expires 2592000s;
        }
  
        location ~* \.(jpeg|jpg)$ {
          expires 2592000s;
        }
  
        location ~* \.(png)$ {
          expires 2592000s;
        }
  
        location ~* \.(css)$ {
          expires 604800s;
        }
  
        location ~* \.(js|jsonp)$ {
          expires 604800s;
        }
  </code></pre>