我试图使用NamedVirtualHosts来设置一个服务器来处理两个网站。 这是我第一次尝试这种做法,而且我的行为非常不寻常。 具体来说,请求www.example2.com指向o / 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”的域。
在适当的部分如下所示:
ServerAlias example1.com
ServerAlias example2.com
什么问题,听起来像是完美的工作。
你有一个虚拟主机www.example2.com去正确的地方。 任何你没有虚拟主机的主机名(例如example.com)将会进入第一个虚拟主机。
从Apache2文档 –
由于www.example.com是configuration文件中的第一个,它具有最高的优先级,可以被视为默认或主服务器。 这意味着如果接收到的请求不符合指定的ServerName指令之一,它将由第一个VirtualHost提供服务。
因此,由于您没有为example.com定义的虚拟主机,Apache将使用默认的虚拟主机。 在你的情况下,这是www.example1.com。