mod_proxy 和尾随斜杠?

mod_proxy 和尾随斜杠?

我们在不同的 Web 服务器前面使用 httpd 和 mod_proxy 作为反向代理。

我们的www子域名指向反向代理,mod_proxy 从那里引导请求。

我还没能想出一个简洁的方式来表达这一点,所以我只会展示:

如果我们有一个网站http://blah.example.com/my-web-app,我们通常会在反向代理中添加这样的一行:

ProxyPass   /my-web-app      http://blah.example.com/my-web-app

这样用户就可以访问http://www.example.com/my-web-app。当请求的路径组件(/my-web-app在本例中)在反向代理和 Web 服务器上相同时,将自动添加尾部斜杠,就像有人直接访问 一样http://blah.example.com/my-web-app

但是,如果路径组件不同,例如:

ProxyPass   /my-web-app      http://blah.example.com/some-other-path

然后尾部斜线不是得到添加。

这种行为正常吗?是否有一些配置可以解决此问题?

答案1

仔细阅读 Apache httpd 文档中有关 ProxyPass 的部分(http://httpd.apache.org/docs/current/mod/mod_proxy.html)。您可以通过明确指定 ProxyPass 指令的两个参数的尾部 / 来避免此行为

ProxyPass   /my-web-app/      http://blah.example.com/some-other-path/

相关内容