在Namecheap上,如何设置网站根域名重定向到www子域名

在Namecheap上,如何设置网站根域名重定向到www子域名

当建立一个新的网站的时候,通常我习惯做一个www子域名的A记录到网站服务器,然后再做一个CName记录把根目录也指向同一个服务器。
这样配置DNS之后,再在网站的服务器上做根域名到www子域名的重定向redirect。

这样当访问网站的这样的URL地址的时候就会转到对应的www的URL地址。例如:

    http://map4b.com -> http://www.map4b.com
    http://map4b.com/about -> http://www.map4b.com/about
    https://map4b.com -> https://www.map4b.com

通常这样似乎没什么问题,我也一直是这么做的。

但是没想到namecheap不建议这么做,因为这会影响这个域名的email服务器的MX记录。

Please don’t set up a CNAME record for a bare domain e.g., yourdomin.tld (@ hostname since it may affect the operation of the domain’s MX records and, consequently, the email service. Thus, in most cases you will need to create a CNAME record for WWW (or other subdomain) and URL Redirect for @ that will point to http://www.yourdomain.tld/

参考:https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-can-i-set-up-a-cname-record-for-my-domain

推荐的方式是用namecheap的域名URL redirect配置。
但是这里有个小小的陷阱需要特别注意一下,就是redirect的目的URL最后带不带一个“/”结果很不一样。
简单的说,redirect根域名@的时候,目的URL应该以“/”结尾,否则原URL里的domain后面的path不会出现的目的URL中。
例如,当redirect的配置是 @ => http://www.map4b.com 时,redirect的结果如下:

    http://map4b.com -> http://www.map4b.com
    http://map4b.com/about -> http://www.map4b.com

例如,当redirect的配置是 @ => http://www.map4b.com/ 时,redirect的结果是这样的:

    http://map4b.com -> http://www.map4b.com
    http://map4b.com/about -> http://www.map4b.com/about

碰到这个小陷阱是因为Google的Ad manager里的ads.txt验证是是通过根域名和http来访问ads.txt文件的。所以尽管网站的地址是http://www.map4b.com 或 https://www.map4b.com ,但是Ad manager验证ads.txt的URL却是使用根域名的 http://map4b.com/ad.txt !这时你在Namecheap里的URL redirect如果没有配置成带”/”结尾,ads.txt验证就永远通不过了。

参考Stack Overflow上的这篇文章: https://webmasters.stackexchange.com/questions/112771/redirecting-with-namecheap-removes-the-path-and-sends-all-urls-to-the-home-page

问题是namecheap的这种redirect的方法只支持http。当你应https去访问,namecheap重定向的服务器并不会做任何动作。这个不知道应该如何解决:(

update 20191010:
原来还有一种域名类型叫“ALIAS record”。NameCheap的文档是这么写的。看来正式CName的功能加上能与MX这样的记录同时使用。不知道使用ALIAS相对于CName有没有什么弊端。

An ALIAS Record is used to point one domain name to another one. It’s almost the same as a CNAME Record, but the important difference here is that ALIAS can coexist with other records on that name. ALIAS is a virtual type of record, and on the DNS level, it works as if it’s an A Record. Therefore, ALIAS does not conflict with other records on the same hostname.

A CNAME Record takes priority over any other resource record for a given hostname. As such, a CNAME cannot coexist with any other resource record, such as MX or TXT Records. So if you had these other records/services for your example.blog domain they would cease to work, as CNAME Records always take precedence.

ALIAS Records can coexist with others, so no such problems occur. Your DNS Records can all work in harmony.

leon

每天进步一点点