Cloudflare中www域名指向vercelDNS,根域名指向www的注意事项
因为是网站,所以一般是将www二级域名作为主体,将根域名301指向www。
偶然发现百度抓取竟然不支持A记录,只能用CNAME才能正常,所以才需要折腾一下。
-
在域名托管商(如cloudflare)处,找到DNS设置项,添加一条CNAME记录,
Name
填写www
,Target
填写你要指向的DNS指向地址,保存。 -
再添加一条CNAME记录,
Name
填写根域名
,Target
填写你要指向的DNS指向地址(可以与上面相同),保存。
为根域名添加CNAME记录会在左侧出现一个信息提示(如下图):CNAME records normally can not be on the zone apex. We use CNAME flattening to make it possible.
传统的 DNS 规定不允许你在域名的区域顶点(也就是你的裸域,根域名)设置 CNAME 记录。不过,Cloudflare 提供了 CNAME 展平(Flattening)功能,这个功能让你可以在区域顶点上设置 CNAME 记录。
CNAME 展平是 Cloudflare 的一个特性,它可以让你在裸域(没有 www 的域名)上设置 CNAME 记录,而不受传统 DNS 规则的限制。当 DNS 查询到达 Cloudflare 时,Cloudflare 会自动解析 CNAME 记录,返回展平后的 IP 地址,而不是传统的 CNAME 别名。这样就可以将裸域名解析到其他的服务,比如你的情况中的 Vercel。
知道这一点,你可以放心添加 CNAME 记录,并利用 Cloudflare 的 CNAME 展平特性。只需要注意,因为 DNS 更改可能需要一些时间在全球范围内生效,所以你做出更改后,可能需要等待一段时间。
- 然后 Rules Page rules ,将
根域名/*
301 永久重定向至www.域名.com/$1
。
这样一来,所有访问根域名的情况都被重定向至www网站。
之前只执行了第1、3步,跳过了第2步。导致GSC在解析根域名网站时提示:URL is not available to Google,Page fetch error Failed: DNS error: Host unknown。
如果你的域名没有 A 记录或 CNAME 记录,它就不能被正确解析,这可能就是你在 Google Search Console 中遇到 “URL is not available to Google, Page fetch error, Failed: DNS error: Host unknown” 错误的原因。
你的根域名也需要有一个有效的 DNS 记录(如 A 记录或 CNAME 记录),将其指向一个有效的 IP 地址或主机名,然后你的 301 重定向才能生效,对根域名网站进行的请求才能被正确地重定向到 www网站。
所以,你应该在你的 Cloudflare DNS 设置中添加一个 A 记录或 CNAME 记录,将你的根域名指向相同的 IP 地址或主机名。