不同的重写规则重定向URL相同
问题描述:
rewrite ^/old-url /new-url permanent; rewrite ^/old-url/old-url-sub /new-url/new-url-sub permanent;
不同的重写规则重定向URL相同
2版网址(/旧的URL和旧网址/老URL-SUB)重定向到相同的URL(/新网址)
什么问题是什么?
答
的问题是,正则表达式匹配^/old-url
和/old-url
和/old-url/old-url-sub
/old-url/anything-else
。
因此,第一个rewrite
语句被调用这两个URI。
如果您希望正则表达式仅匹配整个字符串,则需要在模式的前部和后部使用锚点。如您所知,^
锚定图案的正面,而$
锚定图案的背面。
尝试:
rewrite ^/old-url$ /new-url permanent;
如果你试图重定向/old-url/xxx
到/new-url/xxx
其中xxx
是什么,你可以使用一个单一的rewrite
语句捕获:
rewrite ^/old-url(/.*)?$ /new-url$1 permanent;
重写^/old-url $/new-url永久;这条线解决了这个问题。谢谢 – aligokayduman