nginx 301重定向查询字符串

Tom*_*rne 10 redirect nginx

目前我的nginx.conf文件中有类似的内容:

location ~ /old/page/?$ {
    return 301 /new-page;
}
Run Code Online (Sandbox Code Playgroud)

问题是查询字符串是从/ old/page?ref = xx URL中删除的.

是否可以使用我上面使用的重定向方法包含查询字符串?

Ric*_*ith 21

来自?和之后的任何内容都是查询字符串,并且不是locationrewrite指令中使用的规范化URI的一部分.请参阅此文档了解详细信息

如果要保留查询字符串,请将其添加到return:

location = /old/page/ {
    return 301 /new/page$is_args$args;
}
Run Code Online (Sandbox Code Playgroud)

或者rewrite,除非?添加a,否则将自动追加查询字符串:

rewrite ^/old/page/$ /new/page permanent;
Run Code Online (Sandbox Code Playgroud)

有关位置语法,请参阅此文档,有关返回/重写的文档.