CNAME 和虚拟主机的问题

CNAME 和虚拟主机的问题

我正在使用 Apache,并且我有一个 CNAME DNS 记录

指向 sub1.domain1.com 的 sub2.sub1.domain1.com

我有一个 A DNS 记录

指向IP的sub1.domain1.com。

然后在我的 httpd.conf 文件中我有:

<VirtualHost *:80>
        ServerName www.domain1.com
        DocumentRoot /domain1/www
</VirtualHost>

<VirtualHost *:80>
        ServerName sub1.domain.com
        DocumentRoot /domain1/sub1/www
</VirtualHost>

但我似乎忽略了一些东西,因为当您访问 sub2.sub1.domain1.com 时,它会显示 domain1.com 的页面。当您访问 sub1.domain1.com 时,它会显示 sub1 的正确页面。

答案1

虽然您有 CNAME 记录将 sub2.sub1.domain1.com 指向正确的服务器,但 apache 服务器可能为多个网站提供服务。

当一个 http 请求进来时,apache 检查 URL服务器名称确定要提供哪个网站。如果有任何其他名称指向同一个网站,则将它们放入服务器别名

在你的 httpd.conf 中,你必须添加服务器别名对于sub2.sub1.domain1.com

<VirtualHost *:80>
    ServerName sub1.domain.com
    ServerAlias sub2.sub1.domain1.com
    DocumentRoot /domain1/sub1/www
</VirtualHost>

此外,第一个虚拟主机httpd.conf 中的声明用作默认。当一个 http 请求到达并且没有匹配任何服务器名称服务器别名, 这默认站点已满。

相关内容