www 的域 IP 地址和规范 URL 的非 www 的域 IP 地址

Posted

技术标签:

【中文标题】www 的域 IP 地址和规范 URL 的非 www 的域 IP 地址【英文标题】:Domain IP address for www and non-www for Canonical URL 【发布时间】:2013-11-03 05:09:33 【问题描述】:

要处理规范 URL,最佳做法是执行 301 重定向还是更好地为 www 和非 www 域使用相同的 IP 地址?

例如:

想要的规范 URL/域是 http://example.com

Domain           | A Record
------------------------------------
example.com      | 192.0.2.34
www.example.com  | 192.0.2.34

我知道人们可能有 www 的 CNAME 记录(别名,因为 CNAME 被称为规范名称);不确定这是否是与使用相同 IP 地址相比的最佳做法。

或者这样更好。

Domain           | A Record
------------------------------------
example.com     | 192.0.2.34
*  www.example.com 301 redirect to example.com

【问题讨论】:

【参考方案1】:

您描述的机制(ACNAME 记录与 301 重定向)是两种不同协议(DNS 和 HTTP)的一部分。 ACNAME 记录与您的 HTTP 服务器为不同请求服务的站点无关。

让我们看看两种不同的 DNS 配置:

配置 1(CNAME 记录)

Host             | Type  | Data
-----------------+-------+-------------
example.com      | A     | 192.0.2.34
www.example.com  | CNAME | example.com
nslookup example.com 解析为 192.0.2.34 nslookup www.example.com 解析为 192.0.2.34

配置 2(A 记录)

Host             | Type  | Data
-----------------+-------+-------------
example.com      | A     | 192.0.2.34
www.example.com  | A     | 192.0.2.34
nslookup example.com 解析为 192.0.2.34 nslookup www.example.com 解析为 192.0.2.34

在这两种情况下,您的规范域和 www 子域都解析为 192.0.2.34。但是,您的 HTTP 服务器唯一能识别的是它在同一 IP 地址上同时接收到 example.comwww.example.com 的请求。但它不知道你使用的是A 还是CNAME 记录。

TL;DR

您必须使用 HTTP 301 重定向来强制 HTTP 请求中的规范 example.com。但这与您的 DNS 配置无关。

【讨论】:

感谢您的详细解释。 HTTP 重定向或将完成重定向的服务器的 A 记录将解决规范的 url 问题。你是一个善良的人,我很感激你的时间。 很好的解释。但我有一个问题。如何强制使用 www 而不是规范?对于我的一个域,即使我访问 www,它也只服务于规范域。它重定向到规范网址。有什么想法吗? @SD 重定向是由您的网络服务器引起的。检查您的网络服务器配置是否有任何从 www 域到您的规范域的重定向,如果您不希望这样做,请删除它们。 @PoByBolek 你的意思是我应该检查 apache 配置吗? @SD 是的,当然【参考方案2】:

你可以试试redirect.center。它仅使用 DNS 重定向域。 因此它将满足您的 DNS 配置:

Domain           | A Record
------------------------------------
example.com      | 192.0.2.34
*  www.example.com 301 redirect to example.com

将您的 DNS 记录设置为:

CNAME |万维网 | example.com.opts-https.redirect.center

注意:.opts-https. 参数重定向到 https 域 如果您只使用http 域,请使用.opts-uri.

【讨论】:

这是我一生都在寻找的解决方案 :) 谢谢!!【参考方案3】:

在 DNS 中,规范名称记录指向“一个真正的 DNS 条目”。最终结果是 DNSName1 与 DNSName2 具有相同的 IP 地址。

CNAME 不是规范名称这一事实使理解变得复杂。 CName 记录指向规范名称。 (规范名称为 A 记录)。

规范链接: 对于搜索引擎,页面 html 标头中的规范链接指定“一个真实页面”。您可以访问多个页面,但您使用规范链接告诉搜索引擎该页面与其他页面相同。这样做会让搜索引擎很高兴,因为您不会假装提供更多内容而只是重复,而不是在玩弄系统。它只索引一次。

301 (http) 重定向: 对于搜索引擎,这表示页面 x 现在被页面 y 替换,并且所有搜索排名都可以转移到页面 y。如果它是一种“装饰性”的域名标准化,它还会告诉搜索引擎只索引一个页面,并且再次表明您没有试图欺骗搜索引擎。

【讨论】:

以上是关于www 的域 IP 地址和规范 URL 的非 www 的域 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

HTML

在python中获取url的IP地址? [复制]

NGINX 将 http 重定向到 https,将非 www 重定向到 ww

URL和IP的区别和联系。

IP地址,URL,网址有啥关系

规范链接是不是需要完整的域?