我有一个传统的后端,它不会将 url 编码解释%2B
为+
url 中的登录,例如
http://10.20.30.40/keyvalues?Name=foo%2Bbar%2Bbaz%2B...
http://10.20.30.40/keyvalues?Name=foo%2Bbaz
http://10.20.30.40/keyvalues?Name=foo
所以我要把它们变成这样的形式:
http://10.20.30.40/keyvalues?Name=foo+bar+baz+...
http://10.20.30.40/keyvalues?Name=foo+baz
http://10.20.30.40/keyvalues?Name=foo
使用 Nginx reverce-proxy。但我猜我ngx_http_rewrite_module
的配置不会像在文档中,我目前的规则是:
location ~ keyvalues {
rewrite x2B +;
proxy_pass "$scheme://$http_host";
}
并且它并没有取代(根据tcpdump
和后端的响应来判断)。
替换 url 中的多个字符的正确方法是什么?(就像使用 sed 的's/%2B/+/g'
命令一样。)