我使用的是nginx作为apache服务器的代理。
这是我的配置:
location ~ ^/subsite/(.*)$ {
proxy_pass http://127.0.0.1/subsite/$1?$query_string;
}
问题是如果我发送%20的请求,例如mywebsite.com/subsite/variable/value/title/Access%20denied/another/example
%20被空格替换,并且apache不关心Access / title / Access之后的所有请求结束
任何想法?
答案 0 :(得分:11)
我能够解决类似的问题 - 我们有一个api,要求搜索条件成为URL路径的一部分。将输出直接传递给proxy_pass指令会导致它抛出502即使请求被正确地进行了url编码。
以下是我们提出的解决方案:
location ~ /api/search(/.*) {
set $query $1;
proxy_pass http://127.0.0.1:3003$query;
}
" set"指令似乎保持url编码完整(或重新编码正则表达式在$ 1中传回的内容)。