我的sv上有一个IP地址,我想在一个Apache服务器上用另一个DocumentRoot设置两个域。这是我在httpd-vhosts.conf
中得到的<VirtualHost *:80>
DocumentRoot "C:\wamp\www\mail"
ServerName mail.A.pl
</VirtualHost>
<VirtualHost *:80>
ServerName B.eu
DocumentRoot "c:\wamp\www\B"
</VirtualHost>
<VirtualHost *:80>
ServerName A.pl
DocumentRoot "c:\wamp\www"
</VirtualHost>
即使我尝试加载页面:http://www.A.pl
或www.B.eu
或B.eu
或A.pl
,也会加载mail.A.pl
。
我做错了什么?
EDITED
这是新的httpd-vhost,现在它加载正确的页面,但是f.e.对于A.pl没有显示任何图像,并且在mail.A.pl上不想发送POST数据:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "C:\wamp\www\mail"
ServerAlias mail.A.pl
ServerName mail.A.pl
</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName B.eu
ServerAlias *.B.eu
DocumentRoot "c:\wamp\www\B"
</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName A.pl
ServerAlias A.pl
DocumentRoot "c:\wamp\www"
</VirtualHost>
EDIT2 谢谢你们的帮助。
我刚刚将第一个VirtualHost切换到最后,并且它开始工作:O
答案 0 :(得分:1)
您需要将NameVirtualHost
映射到IP地址127.0.0.1以映射多个虚拟主机。
例如:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot 'C:\wamp\www'
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName myclient.local
DocumentRoot 'C:\wamp\www\ClientsMyClient'
</VirtualHost>
看看这个tutorial。
答案 1 :(得分:1)
我认为你需要做一些事情。
1)取消注释Apache配置文件中的虚拟主机行,使其包含httpd-vhosts.conf
。在OSX上:
# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
2)在主持人文件(http://en.wikipedia.org/wiki/Hosts_(file)中填写必要的行:
127.0.0.1 mail.A.pl
127.0.0.1 A.pl
127.0.0.1 B.pl
127.0.0.1 every.A.pl
127.0.0.1 subdomain.A.pl
127.0.0.1 needs-a-line.A.pl
ServerAlias
实际上可以实现,您不需要子域名,仅适用于类似的“主要”域。
您的httpd-vhosts.conf
文件没问题。
为什么图像和POST不起作用我不知道。这与此主机文件没有任何关系。也许还有另一个.htaccess
文件。