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

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

我想* .mydomain.comredirect到mydomain.com。

mydomain.com托pipe在第三个服务上。 我没有访问任何我的网站的Apacheconfiguration文件。

谢谢你,马尔科姆

在DNS技术层面,确保您可以拥有:

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

虽然更好的configuration将是:

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

这将确保人们查找foo.example.comSOAMXlogging不会得到意外的答案。

但是,如果您的Web服务器没有设置为期望人们开始使用的通配主机名称,他们将只是得到错误页面。

为了这个工作,你需要像这样的东西:

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

并且必须在主configuration中,而不是在.htaccess文件中。

或者,如果意图是所有的通配符子域名都在同一个站点上,则使用HTTP级别的redirect,这样所有的URL都会被redirect到一个首选的规范URL(例如www或者没有任何前缀的URL)

假设你可以不失败地在你的域中设置通配符(* .example.com)在DNS(如果没有,你可以移动你的域名,例如freedns服务)。

DNS服务只能将域名转换为IP,不与任何服务(http,ftp,smtp)相关,因此不能将http请求从一个域redirect到不同的域。

但是你可以:

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

此外,大多数stream行/使用的控制面板(cPanel,DirectAdmin,…)支持通配符,所以也许你可以自己设置。

如果您的DNS提供商支持通配符CNAME,那么这应该工作。 见问题44618