加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

在Nginx重定向中重命名参数

发布时间:2020-12-13 20:52:28 所属栏目:Nginx 来源:网络整理
导读:我正在尝试使NGINX重定向将我从: https://example.com/ui/?outletID=123setID=456 至: https://example.com/ui/?outletId=123setIds=456 因此,outletID-> outletId和setID-> setIds 重要说明:我不知道这些参数在URL中出现的位置,因此在它们之前或之后可能

我正在尝试使NGINX重定向将我从:

https://example.com/ui/?outletID=123&setID=456

至:

https://example.com/ui/?outletId=123&setIds=456

因此,outletID-> outletId和setID-> setIds

重要说明:我不知道这些参数在URL中出现的位置,因此在它们之前或之后可能还有其他字符串.我只关心这种替换:outletID-> outletId; setID-> setIds.

第一次尝试时可以使用:

if ($args ~* "^outletID=(d+)&setID=(d+)(.*)") {
    set $outletid $1;
    set $setid $2;
    set $everythingelse $3;
    set $args '';
    rewrite ^.*$/ui/?outletId=$outletid&setIds=$setid$everythingelse permanent;
}

但这似乎是非常糟糕的做法,我尤其讨厌最终得到的$3($3)解决方案.

最佳答案
为了涵盖所有可能,您可能需要分两个阶段执行此操作,如果存在outletID,则进行一个重定向,如果存在setID,则进行另一个重定向.

例如:

if ($args ~ ^(.+&|)outletID(=.*)$) {
    return 301 "$uri?${1}outletId$2";
}
if ($args ~ ^(.+&|)setID(=.*)$) {
    return 301 "$uri?${1}setIds$2";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读