我是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;
}
}
答案 0 :(得分:2)
使用反向引用的魔力。在()中放入正则表达式捕获匹配的表达式,然后使用$ 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;
}
}
有关详细信息,请参阅here。