nginx – 301redirect/子文件夹1 /一些友好的url-12345到/子文件夹2 /一些友好的url

我是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式的资源 。