使用 CNAME 记录将子域重定向到另一个网站?

jug*_*pro 1 domain-name-system website domain cname-record subdomain

根据我目前的理解,我可以使用 CNAME 记录将用户重定向到另一个域。例如,我拥有“mydomain.com”。当用户访问“keep.mydomain.com”时,他们应该被重定向到“keep.google.com”。

我目前在我的 DNS 记录集中有以下记录:名称:keep.mydomain.com 类型:CNAME 值:https ://keep.google.com/ TTL:300ms

我在该子域下没有任何其他记录,但是我在其他域/子域下确实有 MX、A、NS、SOA、TXT 和其他 CNAME 记录,它们可以正常工作。但是,当我转到“keep.mydomain.com”时,出现错误:

This site can’t be reached
keep.mydomain.ca’s server DNS address could not be found.
ERR_NAME_NOT_RESOLVED
Run Code Online (Sandbox Code Playgroud)

我是否误解了 CNAME 的使用,还是我配置的某些内容存在冲突?

Jac*_*ans 9

CNAMES 不是重定向,它们是别名。CNAME 还包括所有其他资源记录,例如 A、MX、TXT。

因此,如果您查询 A 记录,则 cname 会将您发送到其别名的 A 记录。

许多注册商包括其他选项,例如重定向服务、godaddy 和 Google。

另外,请小心输入 CNAMES 的值,有些系统假定终止期,而其他系统则不假定。

假设域example.com

test IN CNAME example.org
Run Code Online (Sandbox Code Playgroud)

测试结果解析为不存在的主机 example.org.example.com 的 IP。

test IN CNAME example.org.
Run Code Online (Sandbox Code Playgroud)

测试结果解析为确实存在的主机 example.org 的 IP。

CNAME 值只能是 HOSTS,不能是 URL。

dig A keep.richardyang.ca @8.8.8.8
keep.richardyang.ca.    299     IN      CNAME   https://keep.google.com/.
Run Code Online (Sandbox Code Playgroud)

将其更改为

keep.richardyang.ca.    299     IN      CNAME   keep.google.com.
Run Code Online (Sandbox Code Playgroud)

也许看看/sf/ask/708105961/

关于如何在 Google.com 域中使用合成记录的示例。

保持纪录

;; ANSWER SECTION:
keep.jacobdevans.com.   3600    IN      CNAME   ghs.googlehosted.com.
ghs.googlehosted.com.   163     IN      A       173.194.207.121
Run Code Online (Sandbox Code Playgroud)

这会将我的请求发送到 google 的服务器,然后 google 将 302 代码发送到新的 url,我选择了 302,如果您希望 SEO 知道这是一个永久性更改,则您需要 301,我可能想在某个时间切换我的目的地稍后我将其用于我的签名链接以确保我的联系信息保持最新。

或者,由于您已经有一个网站,请将域指向那里并重定向该网站。

脚本:

<script type="text/javascript">
if (window.location.href== "http://keep.richardyang.ca") {
   window.location.href = 'http://keep.google.com'; 
}
</script>
Run Code Online (Sandbox Code Playgroud)

域名解析:

keep.richardyang.ca.    299     IN      CNAME   richardyang.ca.
Run Code Online (Sandbox Code Playgroud)