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

Posted

技术标签:

【中文标题】一台 Apache 服务器上的多个域(WAMP)【英文标题】:Multiple domains on one Apache server(WAMP) 【发布时间】:2012-12-08 06:45:43 【问题描述】:

我的 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。 我做错了什么?

已编辑

这是新的 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

【问题讨论】:

【参考方案1】:

我认为你需要一些东西。

1) 取消注释 Apache 配置文件中的 Virtual hosts 行,使其包含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 文件。

【讨论】:

我已经取消注释了,域名也被重定向到我的服务器,我买了它们,只是将真实姓名更改为AB 您服务器上的其他内容可能有误。您是否还有其他 .htaccess 文件用于图像过期?我认为您需要告诉我们更多有关您的服务器配置和在其上运行的应用程序的信息。也许您只是在&lt;form&gt; 发布的位置打错了字?或者在您应用的&lt;base href=""/&gt; 中?【参考方案2】:

您需要将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。

【讨论】:

当我将 NameVirtualHost 与我的服务器 IP 一起使用时,它可以正常工作,但其他资源(如图像)没有加载到任何这些域中

以上是关于一台 Apache 服务器上的多个域(WAMP)的主要内容,如果未能解决你的问题,请参考以下文章

wamp局域网不能访问,

如何配置WAMP Apache服务器允许的Ajax跨域请求

apache做转发

在一台 apache 服务器上设置多个 IP 地址

是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

PHP Wamp 服务器 - 一台服务器上有 2 个 SSL 证书