HI:
问一个关于ngx.req.get_uri_args()方法的问题:
在用nginx做反向代理的时候,代理服务器接受到请求后,对参数需要做一次修改操作
于是就调用了 ngx.req.get_uri_args这个函数,然后把修改后的query string发给后端服务器,发现某些query中带有“+”的时候会出现错误
经追查发现,是由于调用这个函数后,参数中的+会被替换成空格导致了错误。
找了下nginx-lua的源代码在ngx_http_lua_util.c这个源代码的1917行有这么一个处理
if (ch == '+') {
*d++ = ' ';
break;
}
所以导致了这个问题。
想请问下这个问题有什么方法可以避免么? 当初这么处理的意图是什么呢?
曾魁
-
whatever you do —— just have fun !