2014-08-28 3 views
4

Я борюсь с настройкой правил перезаписи для PrestaShop со следующей установкойPrestashop 1.6 + Nginx + SSL + Многоязычный сайт - Правила перезаписи

  • Prestashop 1,6
  • SSL
  • Multiligual сайта (фр + еп в моем случае)
  • Nginx 1.4.1 (что важно для настройки SSL, я нашел)

я использовал некоторые из ссылок ниже

http://www.prestashop.com/forums/topic/323391-another-nginx-ssl-rewrite-rules-problem/ http://www.prestashop.com/forums/topic/321261-seo-friendly-nginx-rewrites/ (не многоязычная) PRESTASHOP NGINX + REWRITE RULES

и получил в этом конфиге ниже.

Все работает за исключением некоторых из моих платежных модулей, которые возвращают URL как mysite.com/en/index.php?parameter1=1 & PARAMETER2 = 2

Это вызывает 404

Похоже URL-адрес должен быть переписан как mysite.com/index.php?parameter1=1 & pARAMETER2 = 2

у меня есть два вопроса:

  1. Какое правило обрабатывает URL-адреса, например mysite.com/ru/16-crews, которые работают нормально? и что это такое? (Я просто интересно понять, как это работает)

  2. Как настроить правило переписывать mysite.com/en/index.php?parameter1=1 & параметр2 = 2 к MySite .com/index.php? параметр1 = 1 & параметр2 = 2 Он должен также работать с французской стороне участка /fr/index.php к /index.php

    server { 
    
    listen 80; 
    listen 443 ssl; 
    server_name mysite.com www.mysite.com; 
    
    ssl on; 
    ssl_certificate /etc/nginx/ssl/mysite.crt; 
    ssl_certificate_key /etc/nginx/ssl/mysite.key; 
    
    access_log /var/log/nginx/mysite.access.log; 
    error_log /var/log/nginx/mysite.error.log; 
    rewrite_log on; 
    
    location/{ 
    root /srv/d_h2osensations/www/www.mysite.com/htdocs; 
    index index.html index.htm index.php; 
    
    rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last; 
    rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last; 
    rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last; 
    rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-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-]*)?/[_a-zA-Z0-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-]*)?/[_a-zA-Z0-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-]*)?/[_a-zA-Z0-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-]*)?/[_a-zA-Z0-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-]*)?/[_a-zA-Z0-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-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last; 
    rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last; 
    rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last; 
    try_files $uri $uri/ /index.php?$args; 
    } 
    
    location ~ \.php$ { 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME /srv/d_h2osensations/www/www.mysite.com/htdocs$fastcgi_script_name; 
    } 
    
    # Deny access to .htaccess 
    location ~ /\.ht { 
    deny all; 
    } 
    
    location /phpmyadmin 
    { root /usr/share/; 
    index index.php index.html index.htm; 
    
    location ~ ^/phpmyadmin/(.+\.php)$ { 
    try_files $uri =404; 
    root /usr/share/; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    } 
    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { 
    root /usr/share/; 
    } 
    } 
    location /phpMyAdmin { 
    rewrite ^/* /phpmyadmin last; 
    
    } 
    
    } 
    

Заранее спасибо. Nic

ответ

5

Через несколько недель озираясь это то, что работает для меня

server { 
    listen 80; 
    #listen [::]:80 default_server ipv6only=on; 
    listen 443 default ssl; 
    #ssl on; 
    ssl_certificate /etc/nginx/ssl/cert.crt; 
    ssl_certificate_key /etc/nginx/ssl/cert-key.key; 

    access_log /var/log/nginx/h2o.prod.access.log; 
    error_log /var/log/nginx/h2o.prod.error.log; 



    root /var/www/www.mysite.com/htdocs; 
    #root /usr/share/nginx/html; 
    index index.html index.htm index.php; 

    # Make site accessible from http://localhost/ 
    server_name mysite.com www.mysite.com; 


    #Specify a charset 
    charset utf-8; 

    rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$1$2$3.jpg last; 
    rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3$4.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$5.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$6.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$7.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$8.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$9.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$10.jpg last; 

    rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last; 
    rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last; 
    rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last; 


    rewrite ^/order$ /index.php?controller=order last; 
    if (!-e $request_filename){ 
     rewrite ^(.*)$ /index.php last; 
    } 

    # Redirect needed to "hide" index.php 
    location/{ 
     try_files $uri $uri/ /index.php?q=$uri&$args; 
    } 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     include fastcgi_params; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    location ~ /\.ht { 
     deny all; 
    } 
} 
Смежные вопросы