重写 apache2 位置标头响应

重写 apache2 位置标头响应

我的 apache2 服务器在代理服务器后面运行。Apache2 不知道它所托管的网站公开使用了哪些主机名。

因此这个请求:

https://www.example.com/zever

像这样发送给 apache:

http://somedomain.localhost/zever

这一切都很好...直到 apache 需要做某种重定向。

它忽略X-Forwarded-Host代理设置的标头,并将此响应标头发送给客户端:

location: http://somedomain.localhost/zever/

我研究了几种让 apache 使用值X-Forwarded-Host而不是当前服务器别名或服务器名称的方法,诸如此类UseCanonicalName,但这些方法都没有用。

我确实偶然发现了这个问题:https://stackoverflow.com/questions/16297233/how-to-rewrite-location-response-header-in-a-proxy-setup-with-apache,它允许您通过使位置标题成为相对标题来编辑位置标题,这可以解决我的大部分问题。

因此我尝试将其添加到我的配置中:

Header edit Location "(^http[s]?://)([^/]+)" ""

唯一的问题是:它不起作用。响应location标头绝对没有任何改变。其他调用(如Header always set Zever bla)工作正常。

我在 Ubuntu 16.04 上运行 Apache/2.4.18

相关内容