DNS 将 domain.example 重定向到 www.domain.example

我已经在网上搜索了这个问题,但是对结果完全失望。这种情况是将所有请求重定向到 domain.example到子域 www.domain.example

所以我有:

  1. www.domain.example -主网站域名,所有客户端请求应为 重定向到这里
  2. domain.example -另一个网站入口 如果没有使用 www 前缀,所有请求都应该被重定向到 www.domain.example
  3. mydomain.example -替代网站别名 请求应该被重定向到 www.domain.example
  4. 对于使用 www 前缀的用户,所有请求都应该重定向到 www.domain.example

我知道这是可能的使用 .htaccess和 PHP。但我想知道如何才能做到这一点,只使用域名解析器。我也理解 DNS 查询的结果不会改变 HTTP 层中发生的事情,因此最初输入的域名将始终是发送到主机中的 Web 服务器的域名。因此,要将 domain.example重写为 www.domain.example,我仍然需要 Apache mod _ rewrite。但我想做的主要工作与 DNS (CNAME 和 A 记录)的一部分。

所以主要的问题是 CNAME 和 A 记录上面的每个域应该有什么?

81396 次浏览

You could make www.example.com the A record and all the other domainnames CNAMEs of www.example.com. But this only "solves" that if the IP address of www.example.com changes you don't have to alter the other DNS enties as they are aliases.

So on the DNS level there is no way to enforce a redirect. And for a good reason because DNS is used for more then only HTTP. For example if all request for example.com would redirect to www.example.com your email addresses will change to user@www.example.com.

So for HTTP redirection you will have to use an HTTP solution. This can be at the webserver level (mod_rewrite, in code, JavaScript (ugh), etc..) but you could also have a proxy in front of your webserver to handle this.