如何更改apache中的Host头

如何更改apache中的Host头

我有两个虚拟主机(www.test1.com 和 www.test2.com)。我想将 www.test2.com 虚拟主机的主机标头更改为 www.test1.com。我已经创建了配置文件,但它不起作用。

w1.conf

<VirtualHost *:80>
ServerName www.test1.com
ServerAlias test1.com
DocumentRoot /var/www/html/test1
ErrorLog /etc/httpd/logs/w1error.log
CustomLog /etc/httpd/logs/w1requests.log combined
</VirtualHost>

w2.conf

<VirtualHost *:80>
ServerName www.test2.com
ServerAlias test2.com
DocumentRoot /var/www/html/test2
RequestHeader set Host "www.test1.com"
ErrorLog /etc/httpd/logs/w2error.log
CustomLog /etc/httpd/logs/w2requests.log combined 
</VirtualHost>

答案1

您可以使用 httpd.conf 中的指令设置任何标头AddHeader。但是,我想知道Host在响应中设置该字段的意义何在。

HTTPHost字段是请求的一部分客户端服务器。通过此字段,Web 服务器(在您的情况下为 Apache httpd,但对于 nginx 也是如此)决定使用哪个虚拟主机。

由于您正在使用 HAProxy(如您的评论之一所述),我认为您想要重写请求的字段。只需删除它,然后附加它:

    reqdel ^Host:
    reqadd Host:\ www.test1.com

相关内容