如果nCapture匹配在nginx中执行某些操作[正则表达式]

时间:2016-04-01 08:40:25

标签: regex nginx

我在这里发帖,即使它可能更像一个SF问题,我认为它可能会让你们感兴趣。

有没有办法告诉Regex nginx,例如,如果第三个catpure groupe匹配重定向到那个呢?

示例: 我们有两种类型的网址:

circuit/asie/indonesie/denpasar-bali/circuit/asie/indonesie/

我们要重定向到

asie/indonesie/denpasar-bali/asie/indonesie/

假设我们有这个正则表达式:\w+\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\/

Playground here

怎么说如果匹配第一个案例重定向到第一个网址并匹配第二个重定向到第二个?

这样的事情可以起作用吗?

  

重写\ w + /([^ /] +)/([^ /] +)/?([^ /] +)?/ / $ 1 / $ 2 /?$ 3?/ permanent;

1 个答案:

答案 0 :(得分:0)

你可以试试这个

rewrite ^(?:.*?/)(.+)$ $1 redirect;

要在n th组之后进行捕获,您可以使用

^(?:(?:.*?\/){n})(.+)$

Regex Demo

如果您想使用URL名称中的允许字符,您可以找到答案here