0

我是 nginx 新手,需要设置一些重定向,我知道 Nginx 中的重定向是基于正则表达式的,但这也不是我的强项。

我们正在启动我们的最新代码,以及重定向以下所有实例的内容

https://uat1.lipsum.com/browse
https://uat1.lipsum.com/popular
uat1.lipsum.com/browse/[anything]   
uat1.lipsum.com/popular/[anything]

到...

https://uat1.lipsum.com/discovery
https://uat1.lipsum.com/discovery
uat1.lipsum.com/discovery/[anything]
uat1.lipsum.com/discovery/[anything]

基本上,用“发现”替换所有出现的“浏览”和“流行”

我尝试了几种方法...

我能想到的最好的是以下,它可以正确重定向,但其他格式不会。

https://uat1.lipsum.com/browse
https://uat1.lipsum.com/popular

nginx.conf

location /browse/ {
    rewrite ^(.*)/browse/(.*)$ /discover/ permanent;
    }

    location /browse {
    rewrite ^(.*)/browse /discover permanent;
   }

 location /popular/ {
    rewrite ^/popular/ /discover/ permanent;
    }

    location /popular {
    rewrite ^/popular /discover permanent;
   }
}
4

1 回答 1

3

使用反向引用的魔力。在 ()s 中放入正则表达式捕获匹配的表达式,然后使用 $1、$2、$3 等将拉取第一个、第二个、第三个等捕获的文本。

location /browse/ {
    rewrite ^/browse/(.*)$ /discover/$1 permanent;
    }

    location /browse {
    rewrite ^/browse$ /discover permanent;
   }

 location /popular/ {
    rewrite ^/popular/(.*)$ /discover/$1 permanent;
    }

    location /popular {
    rewrite ^/popular$ /discover permanent;
   }
}

请参阅此处了解更多信息。

于 2012-04-23T17:22:10.610 回答