我有两个虚拟主机(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