我是nginx上的新手。
我有一些旧的url,比如/ aaaaa / some-friendly-url-12345 ,我想301将这些urlredirect到新的url,但没有ID,比如/ bbbbb / some-friendly-url 。
我也想redirect/ aaaaa / to / bbbbb /
我尝试了一些位置指令,但我无法成功。
这是我试过的一个:
location ~ /aaaaa/(?P<a_slug>.*)$-(?P<a_id>.*) { return 301 https://domain.com/bbbbb/$a_slug; }
谢谢。
如果将$移到最后,正则expression式应该适用于有限的情况。 可以通过仅使最终项匹配数字来改进(所以你不依赖于第一次捕获的贪婪)。 例如:
location ~ ^/aaaaa/(?<a_slug>.*)-\d+$ { return 301 /bbbbb/$a_slug; }
也可以使用rewriteexpression式rewrite :
rewrite ^/aaaaa/(.*)-\d+$ /bbbbb/$1 permanent;
请参阅此文档了解更多 此外, 这个正则expression式的资源 。