在不破坏 proxy_pass 的情况下配置 nginx 重写

在不破坏 proxy_pass 的情况下配置 nginx 重写

我是 nginx 的新手,我似乎无法获得proxy_pass在不破坏代理的情况下将访问者移动到子文件夹的配置。

此配置适用于代理网站代理示例.com我想要的方式……

location /topic/ {
  proxy_pass http://example.com/topicservice/;
}

...但example.com/topicservice/本身没有 HTML,只有一些共享文件(如图像)。HTML 位于子文件夹中。因此,对于上述内容,如果用户浏览到proxy.com/topic/subfolderA/, 或者proxy.com/topic/subfolderB/一切正常。

但如果用户没有指定子文件夹,而只是访问proxy.com/topic/,我想将它们重定向到默认的,比如说proxy.com/topic/subfolderA/

我尝试过各种令人尴尬的rewrite正则表达式和在线各种示例中的代码,但都没有成功。nginx 文档超出了我的理解范围。如果我让重写按照我想要的方式运行,它似乎总是会破坏proxy_pass,并且引用父文件夹 (../) 中内容的子文件夹 HTML 开始在proxy.com/topic/代替example.com/topicservice/

但是,由于只要用户手动指定子文件夹,上述一切都可以正常工作,我觉得一定有一些(可能很简单的)方法来做到这一点,我只是想不通。

相关内容