Nginx 不同的重写规则重定向相同的url
Nginx 不同的重写规则重定向相同的url,nginx,Nginx,重写^/旧url/新url永久; 重写^/old url/old url sub/new url/new url sub-permanent 2个url(/old url和old url/old url sub)重定向到同一url(/new url) 问题是什么?问题是正则表达式^/old url匹配/old url和/old url/old url sub和/old url/任何其他内容 因此,对两个URI调用第一个rewrite语句 如果希望正则表达式只匹配整个字符串,则需要在模式的前面和后
重写^/旧url/新url永久;
重写^/old url/old url sub/new url/new url sub-permanent代码>
2个url(/old url和old url/old url sub)重定向到同一url(/new url)
问题是什么?问题是正则表达式^/old url
匹配/old url
和/old url/old url sub
和/old url/任何其他内容
因此,对两个URI调用第一个rewrite
语句
如果希望正则表达式只匹配整个字符串,则需要在模式的前面和后面使用锚点。如您所知,^
锚定模式的前部,而$
锚定模式的后部
尝试:
如果您试图将/old url/xxx
重定向到/new url/xxx
,其中xxx
是任何东西,您将使用一个带有捕获的rewrite
语句:
rewrite ^/old-url(/.*)?$ /new-url$1 permanent;
请参阅。重写^/old url$/新url permanent;这条线解决了问题。谢谢
rewrite ^/old-url(/.*)?$ /new-url$1 permanent;