Apache奇怪的redirect问题

前几天,我改变了我的Apache的东西,这performance很奇怪。

对于VirtualHost,我有1个条目

<VirtualHost *:80> ServerName siteA.com ... <Directory "/path/to/siteA.com"> </Directory> </VirtualHost> 

然后添加第二个:

 <VirtualHost siteB.com:80> ServerName siteB.com ... <Directory "/path/to/siteB.com"> </Directory> </VirtualHost> 

如您所见,我用实际名称replace了*:80。 结果是,如果你inputsiteA.com,你最终会看到siteB.com的内容。 地址栏仍然会说siteA.com所有的时间..但它是siteB.com的内容。

(我以前的问题,为什么发生这个问题已经被回答..这是一个新的问题)

我想重现这种行为,但以下列方式为3个网站:

 siteA.com shows siteA.com <--- normal siteB.com shows siteC.com <--- not normal siteC.com shows siteC.com <--- normal 

我所有的这样做的尝试最终使所有网站指向指定的域名。

我怎样才能做到这一点?

谢谢。

大段引用

您的VirtualHost指令需要与您的NameVirtualHost指令相匹配。 如果你有

 NameVirtualHost *:80 

那么他们必须全部使用

 <VirtualHost *:80> 

如果你混合使用基于名字的和基于IP的虚拟主机,那么你应该到处使用实际的IP地址,而不是* 。 看到这里的说明。

使用您的示例和DerfK所说的,您可以将DocumentRoot指令添加到每个<VirtualHost *:80>部分,然后将“SiteB.com”站点的DocumentRoot指向/path/to/siteC.com

 <VirtualHost *:80> ServerName siteA.com DocumentRoot /path/to/siteA.com ... <Directory "/path/to/siteA.com"> </Directory> </VirtualHost> <VirtualHost *:80> ServerName siteB.com DocumentRoot /path/to/siteC.com ... <Directory "/path/to/siteC.com"> </Directory> </VirtualHost> <VirtualHost *:80> ServerName siteC.com DocumentRoot /path/to/siteC.com ... <Directory "/path/to/siteC.com"> </Directory> </VirtualHost>