是否可以通过 DNS 设置将通配符子域名指向顶级域名?

是否可以通过 DNS 设置将通配符子域名指向顶级域名?

是否可以仅通过 DNS 设置将通配符子域名指向顶级域名?

我想要将 *.mydomain.com 重定向到 mydomain.com。

mydomain.com 托管在第三方服务上。我无法访问我网站的任何 apache 配置文件。

谢谢你,马尔科姆

答案1

从 DNS 技术层面来看,您当然可以拥有:

*.example.com. IN CNAME example.com.

尽管更好的配置是:

$ORIGIN example.com.
@      IN SOA ( ... )
       IN A n.n.n.n     ; put your server IP here
www    IN A n.n.n.n     ; and here
*      IN CNAME www

这将确保查找SOAMX记录的人foo.example.com不会得到意外的答案。

然而,如果您的 Web 服务器没有设置为接收人们开始使用来指向的通配符主机名,那么他们只会收到错误页面。

为了使其工作,你需要类似这样的东西:

<VirtualHost .....>
ServerName wwww.example.com
ServerAlias example.com
ServerAlias *.example.com

</VirtualHost>

然后位于主配置中,而不是在.htaccess文件中。

或者,如果目的是让所有通配符子域名最终都位于同一站点,请使用 HTTP 级重定向,以便所有 URL 最终都将客户端重定向到首选的规范 URL(例如,www没有任何前缀的 URL)

答案2

假设您可以毫无问题地在您的域名的 DNS 中设置通配符 (*.example.com)(如果不能,您可以将您的域名移动至例如 freedns 服务)。

DNS 服务仅将域名转换为 IP,它与任何服务(http、ftp、smtp)均无关,因此它无法将 http 请求从一个域名重定向到不同的域名。

但是你可以:

  1. 将 *.example.com 指向其他支持 http 通配符和重定向的 web/http 服务器。
  2. 联系您的 http 服务提供商在其服务器上设置通配符

此外,大多数流行/使用的控制面板(cPanel,DirectAdmin等)都支持通配符,因此您可以自己进行设置。

答案3

如果您的 DNS 提供商支持通配符 CNAME,那么这应该可行。请参阅问题 44618

相关内容