如何将动态子域重定向到不同域上的相同子域?
*.example.com to *.example2.com
这可以用Zerigo处理吗?
根据您的具体要求,您可以使用DNAME 记录来实现:
例如,您的example.com
区域文件中可能包含以下内容:
example.com. IN DNAME example2.com.
和一个相当标准的example2.com
区域,你几乎可以达到效果。
查询dig www.example.com
,你会得到:
example.com. IN DNAME exmaple2.com.
www.example.com. IN CNAME www.exmaple2.com.
但是,如果您在任何一个区域下都有您需要的 DNS 记录,例如A
,MX
或TXT
记录,它们不会“别名”,因此您需要将它们存储在两个区域中。
在任何情况下,大多数 DNS 提供商(包括 Zerigo)都不支持 DNAME,它们只为您提供 Web 界面,因此您需要运行自己的 DNS 服务器。
在 DNS 中你不能重定向,这是一个 HTTP 功能。但是您可以做的是使用 CNAME。CNAME 采用 dns 名称,并在幕后将其解析为另一个名称。例如:
www.example.com 解析为 www.example2.com。在网络浏览器中,用户将看到 www.example.com。
您要做的是查看“通配符 CNAME”。不过有一个限制。通配符 CNAME 只会指向一个地址。这意味着:
*.example.com will only ever point to a single address at example.com2 (let's say you pick bang.example2.com)
foo.example.com -> bang.example2.com
bar.example.com -> bang.example2.com
baz.example.com -> bang.example2.com
cux.example.com -> bang.example2.com
还需要注意的是,并非每个 DNS 提供商都允许使用通配符 CNAME。此外,并非每个 DNS 服务器都允许使用通配符 CNAME。如果您真的想让通配符 CNAME 指向 example2.com 中的相应条目,那么您可能需要查看 powerDNS。它允许使用 lua 等各种语言编写的 3rd 方插件。它也可以由 mysql、postgress、ldap 或 sqlite 支持。这意味着如果该功能尚不存在,您可以自己添加该功能。
祝你好运