首页 > 解决方案 > Apache 内置重定向始终是完全合格的

问题描述

我们的 apache 2.4 服务器http://intdomain:8080位于反向代理之后http://extdomain

当用户请求不完整的路径(如http://extdomain/foo(无尾随/))时,apache 服务器会以重定向(带有尾随/)响应,但它使用绝对内部URI,因此位置标头是错误/不可用的:

Location: http://intdomain:8080/foo/

显然,用户无法访问它(理想情况下,反向代理应该重写它,但它不会)。

为什么 Apache 认为它必须使用绝对 URLLocation: /foo/才行?

由于某种原因,以下编辑标题技巧在这里不起作用:

ServerTokens Prod
UseCanonicalName Off
ServerName extdomain
<VirtualHost *:443>
  SSLEngine on
  SSLProxyEngine on
  Header edit Location "^http://intdomain:8080/" "/"
  Header edit Location "^http://intdomain/" "/"
</VirtualHost>

这个技巧似乎“有时”有效——只是在这种情况下不行。

标签: apacheapache2

解决方案


推荐阅读