Apache 配置 - 带连字符的域

Apache 配置 - 带连字符的域

配置 apache 时遇到一个奇怪的问题。

我有 4 个域名

  • www.mydomain.tld
  • www.my-domain.tld

  • www.anotherdomain.tld

  • www.another-domain.tld

我已经为每个域配置了名为虚拟主机。

mydomain.tld、my-domain.tld 和 anotherdomain.tld 工作正常,但 another-domain.tld 工作不正常。

Apache 似乎正在为 anotherdomain.tld 选择虚拟主机并为其提供服务,而不是为 another-domain.tld 提供服务

两者都已正确设置服务器名称

  • 服务器名称 anotherdomain.tld

  • 服务器名称 another-domain.tld

这似乎是唯一可能出现问题的地方。有人对找出此错误的原因有什么建议吗?

其他几点注意事项:每个虚拟主机都在不同的文件中。mydomain.tld 和 my-domain.tld 与 anotherdomain.tld 和 another-domain.tld 位于不同的 IP 地址上。

答案1

您如何知道 Web 服务器正在提供 anotherdomain.tld 而不是 another-domain.tld?您是否看到浏览器地址栏中的 URL 中包含 anotherdomain.tld?

如果你使用复制粘贴技术创建了这些配置,那么你可以保留DocumentRoot 相同对于两个域来说。

另一个猜测是,如果 anotherdomain.tld 和 another-domain.tld 在 apache 中配置在同一个 IP 地址上,但是 another-domain.tlpDNS“A”记录设置为不同的 IP,Apache HTTPD 仅提取其配置中指定的 IP 的默认 VirtualHost,该 IP 可能是 anotherdomain.tld。

示例:如果您的 DNS 中有:

 anotherdomain.tld ->  1.2.3.12
 another-domain.tld -> 1.2.3.12

然后在httpd.conf中:

<VirtualHost 1.2.3.12:80>
 ServerName anotherdomain.tld
  ...
</VirtualHost

<VirtualHost 1.2.3.18:80>
 ServerName another-domain.tld
  ...
</VirtualHost

当您在浏览器的地址栏中输入时http://another-domain.tld/ ,它会向 发出请求1.2.3.12,从而提取 的默认虚拟主机1.2.3.12,即anotherdomain.tld

但这些只是两个猜测...

相关内容