重定向Nginx参数

时间:2019-08-03 03:51:03

标签: nginx nginx-location

我继承了一个旧站点,出于SEO的原因,我希望将旧的参数链接重定向到新的api。像这样:

www.example.com/section/?page=3 => www.example.com/page/3

这是我进行正则表达式重定向的尝试:

location ~ ^/section\/\?page=(.*)/$ {
    return 301 https://www.example.com/page/$1;
}

我已经无数次地使用了这种模式,但是经过数小时的拨动之后,我仍然无法使重定向工作。显然,Nginx对参数的处理方式有所不同。

有什么提示吗?

2 个答案:

答案 0 :(得分:1)

您在这里不需要正则表达式,反正会增加不必要的处理开销。

Nginx已经捕获了url参数。您可以为所有参数使用$args变量,或者为每个参数加上前缀$arg_,因此,假设您所有的url都与此格式匹配,则可以使用如下位置块:

location  /section/ {
    return 301 https://www.example.com/page/$arg_page;
}

答案 1 :(得分:0)

您的正则表达式中有一个斜杠,因此只能匹配sudo -H pip3 install fs sudo -H pip3 install prompt-toolkit --force-reinstall pip3 install prompt-toolkit --force-reinstall

尝试www.example.com/section/?page=3/