在 nginx 中我希望将位置路径复制到 proxy_pass,但我不想复制完整路径。
如果网址是https://127.0.0.1/path1/name1,我只是想复制path1
如下图所示:
location ^~ /path1/{
--some if else statement--
proxy_pass https://backend/path1/;
}
我尝试使用$request_uri
,但它也会/path1/name1
显示
答案1
只需使用rewrite
指令,如下所示proxy_pass
。
当使用指令在代理位置内更改 URI 时
rewrite
,相同的配置将用于处理请求(break
):[...]
在这种情况下,指令中指定的 URI 将被忽略,并且完整更改的请求 URI 将传递给服务器。
就是这样:
location ^~ /path1/ {
rewrite ^ /path1/ break;
proxy_pass https://backend;
}