2011-11-30 86 views
2

我的httpd.conf文件中有两个虚拟主机,具有不同的文档根目录,如下所示,顺序相同。在Apache服务器2.2。*上运行两个虚拟主机*任何服务器名称总是转到第一个虚拟主机

<VirtualHost *.80> 
DocumentRoot E:\docroot1  
ServerName www.development1.local 
</VirtualHost> 

<VirtualHost *.80> 
DocumentRoot E:\docroot2 
ServerName www.development2.local 
</VirtualHost> 

理想时,我打www.development1.local应该告诉我的E:\ docroot1内容,并在我打www.development2.local应该告诉我的E:\ docroot2内容。这两个网址都设置在我的hosts文件中127.0.0.1

我的问题是无论我输入www.development1.local还是www.development2.local,它都会显示我E:\ docroot1的内容。如果我在httpd.conf文件中更改虚拟主机的顺序,那么它会显示E:\ docroot2内容。这意味着它总是会进入第一台虚拟主机。

+1

您是否记得启用基于名称的虚拟主机? – Fredrik

+0

如何做到这一点Fredrik?我是新来的。 – Neeraj

+1

我看到您已经解决了这个问题,但我仍然认为您可以阅读手册的这一部分:http://httpd.apache.org/docs/2.2/vhosts/name-based.html – Fredrik

回答

1

这是因为您的服务器名称是www.development2.local,与development2.local不一样。当没有虚拟主机与URL 中的主机名匹配时,将会使用第一个虚拟主机。添加

ServerAlias development2.local 

如果您也想使用该名称。

+0

感谢Unbeli,我的错误输入时,它的www.development1.local和www.development2.local,我尝试在浏览器中,它需要我根据在httpd中首先配置的虚拟主机的E:/ docroot1文件夹或docroot docroot。 conf文件。 – Neeraj

+1

你有'NameVirtualHost *:80'指令吗?你需要一个 – unbeli

+1

好,谢谢unbeli这个解决我的问题 我在httpd.conf文件中添加以下两行,并在两个工作:) 了NameVirtualHost www.development1.local 了NameVirtualHost www.development2.local 现在案件显示不同的文件根据。 感谢您的帮助。 – Neeraj

相关问题