前几天,我改变了我的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>