我尝试使用 NamedVirtualHosts 设置单个服务器来处理两个网站。这是我第一次尝试这样做,而且我的行为非常不寻常。具体来说,对 www.example2.com 的请求指向 /home/stefan/example2,但http://example.com指向 /home/stefan/example1。
有谁知道这里发生了什么?
/etc/apache2/apache2.conf
...
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /home/stefan/example1
ServerName www.example1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/stefan/example2
ServerName www.example2.com
</VirtualHost>
我猜你的真正意思是 www.example2.com 去正确的地方,但 example2.com 去 www.example1.com 网站。
您需要使用“ServerAlias”指令并在其中插入没有“www”的域。
在适当的部分中类似于以下内容:
服务器别名 example1.com
服务器别名 example2.com
有什么问题,听起来它工作得很好。
你有一个 www.example2.com 的虚拟主机去正确的地方。您没有虚拟主机的任何主机名(例如 example.com)都将转到第一个虚拟主机。
来自Apache2 文档-
因此,由于您没有为 example.com 定义虚拟主机,Apache 将使用默认虚拟主机。在您的情况下,这是 www.example1.com。