2016-07-07 75 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问题,我应该通过代码修复。 –