我在使用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
答案 0 :(得分:0)
请勿在{{1}}中使用$request_uri
,因为它尚未经过网址解码。如果要构造包含查询字符串的URI,请使用:
proxy_pass