如果我在DNS中有以下logging:
hostname Record Type address benmccormack.com A 216.10.244.61 www.benmccormack.com CNAME benmccormack.com
当用户inputhttp://benmccormack.com时,用户期望在浏览器的地址栏中看到什么? 那么http://www.benmccormack.com怎么样? 我期待,我会在地址栏中看到http://www.benmccormack.com更改为http://benmccormack.com ,但也许我误解了一个CNAMElogging应该如何工作。
(注意:我刚刚在15分钟前更新了我的网站的dns,所以也许这些更改还没有传播。)
他们应该看到他们input的任何地址,除非你在web服务器上设置了某种redirect。
另外,它看起来好像你没有正确地更新你的区域文件,或者它还没有被传播,因为www.benmccormack.com将作为Alogging返回:
$ 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
您已经正确设置了DNS。 URL的“www”部分不应该是强制性的,因此“benmccormack.com”和“www.benmccormack.com”应该parsing到同一个Web服务器。 这是它的意图。
如果要将所有请求redirect到非www表单,请将其添加到Apache conf。 文件
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
一个CNAME是一个DNS的东西,一个URL是一个浏览器的东西。 除了使用DNS在URL主机名字段中查找名称之外,两者并不会真正影响对方。
如果你想这样做,下面是我在Apache 2configuration中从一个到另一个的redirect:
<VirtualHost *:80> ServerName www.waywardgypsy.com RedirectMatch permanent /(.*) http://waywardgypsy.com/$1 </VirtualHost>