2016-08-18 77 views
1

我正在運行啓用了多存儲的Prestashop 1.6。 默認URL爲http://192.168.1.217/prestashop161 我有另一家商店在這個網址http://192.168.1.217/prestashop161/shopa將apache http htaccess轉換爲Prestashop 1.6多存儲的nginx配置

當您更改設置,的Prestashop自動創建htaccess文件,但我使用nginx的,而我試圖端口配置。 下面是它是爲我htacess產生:

#Domain: 192.168.1.217 
RewriteCond %{HTTP_HOST} ^192.168.1.217$ 
RewriteRule . - [E=REWRITEBASE:/prestashop161/shopa/] 
RewriteRule ^api$ api/ [L] 

RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] 

,這就是我的nginx已經試過:

location /prestashop161 { 
    root E:\servers\htdocs; 
    index index.html index.htm index.php; 
    rewrite '^/(shopa)$'  /$1/ redirect; 
    rewrite ^/api$ /api/ last; 
    rewrite ^/api/(.*)$ webservice/dispatcher.php?url=$1 last; 
} 

回答

2

我搞清楚如何根據官方文檔做:http://doc.prestashop.com/display/PS16/System+Administrator+Guide#SystemAdministratorGuide-NginxfriendlyURLs

只有啓用了友情鏈接後才能使用,否則會重定向到無限循環。

所以這裏的步驟:

  1. 啓用友好的URL

  2. 此代碼爲主力店

    location /prestashop161/{ 
        root E:\servers\htdocs; 
        index /prestashop161/index.php; 
    
        rewrite ^/prestashop161/api/?(.*)$ /prestashop161/webservice/dispatcher.php?url=$1 last; 
        rewrite ^/prestashop161/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$1$2.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$1$2$3.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$1$2$3$4.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last; 
        rewrite ^/prestashop161/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ /prestashop161/img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last; 
        rewrite ^/prestashop161/c/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /prestashop161/img/c/$1$2.jpg last; 
        rewrite ^/prestashop161/c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$ /prestashop161/img/c/$1.jpg last; 
        rewrite ^/prestashop161/([0-9]+)(-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ /prestashop161/img/c/$1$2.jpg last; 
        try_files $uri $uri/ /prestashop161/index.php?$args; 
    } 
    
  3. 進行粘貼此代碼爲shopa

    location /prestashop161/shopa/ { 
        rewrite ^/prestashop161/shopa/(.*)$ /prestashop161/$1 last; 
        try_files $uri $uri/ /prestashop161/index.php?$args; 
    } 
    

就是這樣