根据参数redirect

我试图根据传递的参数redirect页面。

我想redirect

重写^ / join_trial到/ test? 常驻;

重写^ / join_trial?discount = free(。*)/ test2? 常驻;

第一个工作,但第二个不工作。 看起来nginx不需要(。*)正则expression式。

对于第一个,下面的案例工作。

/ join_trial?testing= AAAAA

/ join_trial?923849 = AAA

基本上,你可以把任何东西放在/ join_trial之后

我想在用户追加时有一个redirect?discount = free (任何东西都在这里)。

这可能与Nginx?

查询string在rewrite根本无法匹配。 所以你需要直接检查参数。

例如:

 if ($arg_discount ~ ^free) { rewrite ^/join_trial /test2? permanent; } rewrite ^/join_trial /test? permanent; 

我怀疑你真的不想发送301redirect,因为用户将在地址栏中看到/test/test2 。 也许你真的只是在内部处理这些URL? 在这种情况下, permanent变更为last