Apache 2.4 子域名设置失败

Apache 2.4 子域名设置失败

我整天都在为此苦苦挣扎,在这里也没有找到答案。请建议如何设置我需要的正确子域。

我的 Apache 配置已配置 2 个域(在同一个 IP 上),对于 domain2.com,我需要设置一个子域。这是我目前所拥有的,但子域一直将我重定向到 domain2.com(主站点)。

<VirtualHost 11.11.11.11:80>
ServerName domain1.com
ServerAlias domain1.com *.domain1.com
DocumentRoot "C:/wwwmap/domain1.com"
</VirtualHost>

<VirtualHost 11.11.11.11:80>
ServerName domain2.com
ServerAlias domain2.com *.domain2.com
DocumentRoot "C:/wwwmap/domain2.com"
</VirtualHost>

        <VirtualHost 46.4.24.4:80>
        ServerName projects.domain2.com
        DocumentRoot "C:/wwwmap/projects"
        </VirtualHost>

DNS 条目为:projects in CNAME domain2.com

尝试删除 ServerAlias domain2.com *.domain2.com 到目前为止有效,但随后 domain2.com 重定向到 domain1.com

我究竟做错了什么?

答案1

你应该使用这样的东西:

NameVirtualHost *:80

<VirtualHost *:80>
 ServerName domain1.com
 ServerAlias domain1.com *.domain1.com
 DocumentRoot "C:/wwwmap/domain1.com"
</VirtualHost>

<VirtualHost *:80>
 ServerName domain2.com
 ServerAlias domain2.com *.domain2.com
 DocumentRoot "C:/wwwmap/domain2.com"
</VirtualHost>

使用这种设置,浏览器发送的 Host: 标头就足以区分不同的条目。您可以使用除“*:80”之外的其他内容,但这是一个基本配置,绝对应该工作。

答案2

必须在使用通配符捕获域的 vhost 之前定义 projects.domain2.com vhost,然后它才能工作。

<VirtualHost 11.11.11.11:80>
ServerName domain1.com
ServerAlias *.domain1.com
DocumentRoot "C:/wwwmap/domain1.com"
</VirtualHost>

<VirtualHost 11.11.11.11:80>
ServerName projects.domain2.com
DocumentRoot "C:/wwwmap/projects"
</VirtualHost>

<VirtualHost 11.11.11.11:80>
ServerName domain2.com
ServerAlias *.domain2.com
DocumentRoot "C:/wwwmap/domain2.com"
</VirtualHost> 

答案3

如果您之前曾从一个域名重定向到另一个域名,则您的浏览器中可能仍缓存着该重定向。请尝试清除缓存。

相关内容