【发布时间】:2021-08-03 16:14:01
【问题描述】:
我想在发送到 proxy_pass 之前去掉 url 参数
对于访客请求网址: => https://example.com/?wanted1=aaa&unwanted1=bbb&unwanted2=ccc&wanted2=ddd
然后它将所有不需要的参数剥离为: => https://example.com/?wanted1=aaa&wanted2=ddd
我现在的方式是这样的:
if ($args ~ ^(.*)&(?:unwanted1|unwanted2)=[^&]*(&.*)?$ ) {
set $args $1$2;
}
但它只删除 1 个参数并且从不进行递归。如何解决这个问题?我想修改 $args。
【问题讨论】:
-
您是否尝试过使用两个
if...set块,一个用于每个不需要的参数? -
这个问题能回答你的问题吗? stackoverflow.com/questions/26384776/…
-
@RichardSmith 不。如果我多次使用相同的字符串example.com/?unwanted2=aaa&unwanted2=aaa,它将无法正常工作,它只会删除第一个不需要的2
-
@patrick 它使用重写,不会修改 $args