为什么基于名称的虚拟主机设置的此设置不起作用?

我有两个域(siteA.com和SiteB.com),指向同一个networking服务器,我想为每个显示不同的网页。

我迄今采取的步骤是:

将默认站点(siteA)复制到站点B.

1) sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/siteB 2) sudo vim /etc/apache2/sites-available/siteB

 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/siteB <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/siteB> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Indexes Order allow,deny allow from all </Directory> </VirtualHost *:80> 

然后我在/ var / www / siteB下创build了一个样例index.html。

但是,当我加载我的域名siteB.com我仍然被定向到/var/www/siteA 。 这是为什么?

我还必须将/etc/apache2/sites-available/default重命名为/etc/apache2/sites-available/siteA吗?

更新:

感谢下面的答案,似乎我已经忘记旁边启用该网站还另一个条目:

 <VirtualHost *:80> ServerAdmin [email protected] ServerName siteB.com ServerAlias www.siteB.com </VirtualHost *:80> 

为了包括所有的子域名,那么做:

 <VirtualHost *:80> ServerAdmin [email protected] ServerName siteB.com ServerAlias *.siteB.com </VirtualHost *:80> 

siteA也一样。

您是否使用命令a2ensite siteB启用siteB ,然后重新启动networking服务器?

我一直在虚拟主机的问题挣扎几天…也许相关:这是我有:

 <VirtualHost *:80> ServerName www.domain1.com ServerAlias domain1.com Include /etc/apache2/vhosts.d/domain1.include <IfModule mpm_peruser_module> ServerEnvironment apache apache </IfModule> </VirtualHost> <VirtualHost domain2:80> ServerAlias domain2.com ServerName www.domain2.com Include /etc/apache2/vhosts.d/domain2.include <IfModule mpm_peruser_module> ServerEnvironment apache apache </IfModule> </VirtualHost> 

domain1正在发送domain2s内容!

最后我改变了

 <VirtualHost domain2:80> 

 <VirtualHost *:80> 

它的工作。

  • “IP”的虚拟主机设置运行在domain2,它具有与domain1相同的IP,甚至从来没有看我的第一个VirtualHost条目

  • 标签需要与IP [和端口]相同,才能查看ServerName和ServerAlias

希望这有助于某人。