Nginx删除位置块中的第二个斜杠

时间:2013-12-13 00:10:46

标签: nginx

我正在尝试在访问唯一网址时使用proxy_pass设置nginx:

location ~ /proxy/(?<var>.+) {
    proxy_pass $var;
}

当我访问http://example.com/proxy/http://google.com时,我收到500内部服务器错误,错误日志包含以下条目:

  

“http:/google.com”中的网址前缀无效,客户端:2.33.214.165,   server:example.com,request:“GET / proxy / http://google.com HTTP / 1.1”,   主持人:“example.com”

nginx在网址中不包含第二个/是否有任何理由?

1 个答案:

答案 0 :(得分:3)

试试这个:merge_slashes 虽然上下文是服务器范围的,但是如果您仍然需要在其他地方合并斜杠,则必须在将代理目标拆分为模式和主机+ uri的位置中改进regexp。这样的事情:^/proxy/(?<schema>.+)://(?<rest>)然后proxy_pass $schema://$rest可能有用。