根据参数重定向

根据参数重定向

我正在尝试根据传递的参数重定向页面。

我想重定向

将 ^/join_trial 重写为 /test? permanent;

重写 ^/join_trial?discount=free(.*) /test2? 永久;

第一个有效,但第二个无效。看来 nginx 不支持 (.*) 正则表达式。

对于第一个问题,以下情况可行。

/加入试用?测试=aaaaa

/加入试用?923849=aaa

基本上,你可以在后面放任何东西/加入试用

我希望在用户添加时进行重定向?折扣=免费(这里什么都可以)。

使用 nginx 可以实现这个吗?

答案1

你根本无法匹配查询字符串rewrite。因此您需要直接检查该参数。

例如:

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

我怀疑你真的不要想要发送 301 重定向,因为用户随后会在地址栏中看到/test或。也许您真的想仅在内部处理这些 URL?在这种情况下,请更改为。/test2permanentlast

相关内容