Nginx重写问号

时间:2017-06-27 14:05:39

标签: redirect nginx

我想重定向一个网址 http://my-site.fr/?param1=xx&param2=xx&param3==xx到主页但不起作用。

你可以帮帮我吗? 我测试了很多语法,但没有正常工作

rewrite ^/?param1=xx&param2=xx&param3==xx http://my-site.fr permanent;

你能帮帮我吗?

谢谢

2 个答案:

答案 0 :(得分:1)

语法:

if ($args ~ "(^|&)param1=xx($|&)"){
set $rule_0 1$rule_0;
}
if ($args ~ "(^|&)param2=xx($|&)"){
set $rule_0 2$rule_0;
}
if ($args ~ "(^|&)param3=xx($|&)"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite ^/$ /? permanent;
}

答案 1 :(得分:0)

?以及后面的任何内容都是查询字符串,不属于nginxlocation指令中rewrite使用的规范化URI的一部分。

您可以测试是否存在查询字符串,然后使用rewrite删除它们:

if ($args) {
    rewrite ^/$ /? permanent;
}

有关详细信息,请参阅this document