一个Apache服务器上的多个域(WAMP)

时间:2012-12-20 17:25:14

标签: apache wamp virtualhost vhosts

我的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.plwww.B.euB.euA.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

2 个答案:

答案 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文件。