增加了新的虚拟主机来redirect外部域名加载第一个虚拟主机

组态:

<VirtualHost sub.domain.com:80> NameVirtualHost sub.domain.com:80 ServerName sub.domain.com DocumentRoot /home/colleague/public_html/domain.com/ZendSkeletonApplication/public/ SetEnv APPLICATION_ENV "development" <Directory /home/colleague/public_html/domain.com/ZendSkeletonApplication/public > Options Indexes FollowSymLinks Includes ExecCGI DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost bugtrack.sub.domain.com:80> NameVirtualHost bugtrack.sub.domain.com:80 ServerName bugtrack.sub.domain.com DocumentRoot /home/colleague/public_html/bugtrack.sub.domain.com/ SetEnv APPLICATION_ENV "development" <Directory /home/colleague/public_html/bugtrack.sub.domain.com > Options Indexes FollowSymLinks Includes ExecCGI DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost domain2:80> NameVirtualHost domain2:80 ServerName domain2.com DocumentRoot /home/me/public_html SetEnv APPLICATION_ENV "development" <Directory /home/me/public_html > Options Indexes FollowSymLinks Includes ExecCGI DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 

错误:

 [Wed Jun 18 18:06:44 2014] [warn] NameVirtualHost bugtrack.sub.domain.com:80 has no VirtualHosts [Wed Jun 18 18:06:44 2014] [warn] NameVirtualHost domain2.com:80 has no VirtualHosts [Wed Jun 18 18:06:44 2014] [warn] NameVirtualHost *:80 has no VirtualHosts 

如果我去domain2.com(虚拟域),我到达sub.domain.com。 我认为这是因为另外两个虚拟主机有问题。 臭虫的虚拟主机确实会加载Bug Genie,但是新添加的第二个域名与第三方寄存器不起作用,并导致第一个虚拟主机。 最后的错误得到了补充,当我取消注释在http conf中的行,因为我认为这将解决问题。

我怎样才能修复这个configuration,并使domain2转到我需要的文档根目录?

做你的虚拟主机定义

 <VirtualHost *:80> 

确保你也有一个NameVirtualHost * ,它不在你的VirtualHost上下文中。 NameVirtualHost只允许在服务器configuration上下文例如

 NameVirtalHost * <VirtualHost *:80> ServerName sub.domain.com DocumentRoot /home/colleague/public_html/domain.com/ZendSkeletonApplication/public/ ... </VirtualHost>