首页 > 解决方案 > 重写一个url参数并保留其他

问题描述

我们更改了推荐链接查询参数并希望保留以前版本的 url。在抽象的变化中,我需要那个

/example?id=partner1&arg1=a&arg2=b
/?id=partner1&arg1=a&arg2=b

改写为

/example?rs=partners_partner1&arg1=a&arg2=b
/?rs=partners_partner1&arg1=a&arg2=b
id=partner1 -> rs=partners_partner1

我们如何在 nginx 上做到这一点?

标签: nginxurlurl-rewriting

解决方案


这不能使用nginx 指令完成,因为它适用于不包含查询字符串rewrite的所谓规范化URI。相反,您需要更改$argsnginx 内部变量:

if ($args ~ (^|.*&)id=([^&]*)($|&.*)) {
    set $args $1rs=partners_$2$3;
}

将此块放在任何块之外location


推荐阅读