我正在尝试使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";
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。