我已经对这个问题进行了网络搜索,但对结果完全失望了.该案例是将所有请求重定向到domain.com到子域www.domain.com.
所以我有:
我知道这可以使用.htaccess和PHP.但我想弄清楚如何只使用DNS来完成这项工作.我也理解DNS查询的结果不会改变HTTP层中发生的事情,因此最初输入的域名将始终是发送到主机中的Web服务器的域名.因此,要将domain.com重写为www.domain.com,我仍然需要Apache mod_rewrite.但我想用DNS(CNAME和A记录)做主要工作.
所以主要的问题是CNAME和A记录上面的每个域应该有什么?
大约5小时前,我在AWS Route 53服务中创建了一个新的托管区域.记录如下:
托管区域domain.com
domain.com. A
domain.com. MX 1 ASPMX.L.GOOGLE.COM.
5 ALT1.ASPMX.L.GOOGLE.COM.
5 ALT2.ASPMX.L.GOOGLE.COM.
10 ASPMX2.GOOGLEMAIL.COM.
10 ASPMX3.GOOGLEMAIL.COM.
domain.com. NS ns-1042.awsdns-02.org.
ns-996.awsdns-60.net.
ns-280.awsdns-35.com.
ns-1711.awsdns-21.co.uk.
domain.com. SOA ns-1042.awsdns-02.org.
awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
www.domain.com. A XX.XXX.XX.XXX
Run Code Online (Sandbox Code Playgroud)
我还更新了我的注册商的域记录,以在那里指定AWS DNS服务器.
domain.com的记录A. 是空的,因为它只是www.domain.com的别名.来自同一托管区域的子域.所以www.domain.com.引用真实的弹性IP地址.
官方AWS文档说:
问题:我对Amazon Route 53上的DNS设置所做的更改会在全球范围内传播多快?
Amazon Route 53旨在在正常情况下,在60秒内将您对DNS记录所做的更新传播到其全球权威DNS服务器网络.请注意,缓存DNS解析器不在Amazon Route 53服务的控制范围内,并将根据其生存时间(TTL)缓存您的资源记录集.
就我而言,5小时后DNS记录尚未传播.我看到AWS DNS服务器已经更新了记录.因此nslookup为ASW DNS服务器正确显示我的Web服务的弹性IP地址.但是,例如,谷歌DNS仍然不知道它:
nslookup domain.com 8.8.8.8: can't find domain.com: NXDOMAIN
Run Code Online (Sandbox Code Playgroud)
你能说我的DNS设置是否错误,以至于DNS记录尚未传播?