如何使用Nginx代理禁用urlencoding

时间:2017-07-28 00:55:27

标签: nginx

我在使用Nginx时遇到了麻烦。 Nginx代理接收这样的urlencoded URI。

GET /X/Y/Z.aspx?id=abc%3D%3D

而且,我注意到Nginx再次应用了urlencoding,并将URI设为这样。

GET /X/Y/Z.aspx?id=abc%253D%253D

如何禁用Nginx以应用这样的urlencoding?我想按原样传输URI。

有没有办法修改请求uri?

根据Nginx文档,它说..

$request_uri
full original request URI (with arguments) 

所以,我在下面指定了proxy_pass。

proxy_pass http://x.x.x.x$request_uri;

Nginx仍然发送请求,如下所示。

GET /X/Y/Z.aspx?id=abc%253D%253D

似乎Nginx在发送消息时应用了url编码。那么,我可以让Nginx在收到请求时对其进行解码吗?然后,Nginx应该在发送时自动对其进行编码,这意味着它以如下预期参数结束。

GET /X/Y/Z.aspx?id=abc%3D%3D

1 个答案:

答案 0 :(得分:0)

请勿在{{1​​}}中使用$request_uri,因为它尚未经过网址解码。如果要构造包含查询字符串的URI,请使用:

proxy_pass