2016-07-07 34 views
0

我需要創建一些重寫(可能回來嗎?)規則...不能設法得到nginx的重寫規則工作

我需要重定向:

www.domain1.es/eswww.domain1.es

www.domain1.es/enwww.domain2.eu/en

www.domain1.es/frwww.domain2.eu/fr

阿爾斯o需要:

www.domain2.eu/eswww.domain1.es

我會感謝任何幫助!謝謝!

回答

0

enfr重定向很容易通過return指令實現。在server塊爲www.domain1.es域,你可以嘗試:

location ^~ /en { return 301 $scheme://www.domain2.eu$request_uri; } 
location ^~ /fr { return 301 $scheme://www.domain2.eu$request_uri; } 

通知的^~修改使這個前綴位置優先於同級別的任何正則表達式的位置。詳情請見this document

從URI中刪除/es前綴將需要重寫。你可以嘗試這些:

server塊爲www.domain1.es域:

rewrite ^/es(.*)$ $1 permanent; 

server塊爲www.domain2.eu域:

rewrite ^/es(.*)$ $scheme://www.domain1.es$1 permanent; 

上面可以放置內的任一location ^~ /es阻止提高效率(但我不認爲這是必要的)。另外,後者不需要刪除前綴/es(因爲它是在其他服務器上完成的)。

+0

非常感謝! 第一部分工作! '重寫^/es(。*)$ $ 1 permanent;'做了一個循環重定向,但這是一個Prestashop問題,我應該通過代碼修復。 –