如果我的 DNS 中有以下记录:
hostname Record Type address
benmccormack.com A 216.10.244.61
www.benmccormack.com CNAME benmccormack.com
当用户输入时,他们应该期望在浏览器的地址栏中看到什么http://benmccormack.com? 怎么样http://www.benmccormack.com?我原本以为会看到http://www.benmccormack.com改成http://benmccormack.com在地址栏中,但也许我误解了 CNAME 记录应该如何工作。
(注意:我大约 15 分钟前刚刚更新了我的网站的 DNS,因此更改可能尚未传播。)
答案1
除非您在网络服务器上设置了某种重定向,否则他们应该可以看到他们输入的任何地址。
此外,看起来您没有正确更新区域文件,或者它尚未传播,因为 www.benmccormack.com 作为 A 记录返回:
$ dig www.benmccormack.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> www.benmccormack.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 809
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.benmccormack.com. IN A
;; ANSWER SECTION:
www.benmccormack.com. 3600 IN A 216.10.244.61
答案2
CNAME 是 DNS 的东西,URL 是浏览器的东西。除了使用 DNS 在 URL 主机名字段中查找名称外,两者实际上不会相互影响。
如果您想这样做,以下是我在 Apache 2 配置上从一个重定向到另一个所做的事情:
<VirtualHost *:80>
ServerName www.waywardgypsy.com
RedirectMatch permanent /(.*) http://waywardgypsy.com/$1
</VirtualHost>
答案3
您已正确设置 DNS。URL 中的“www”部分不应是必需的,因此“benmccormack.com”和“www.benmccormack.com”应解析为同一 Web 服务器。这才是预期结果。
如果要将所有请求重定向到非 www 格式,请将其添加到 Apache conf. 文件中
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]