Choosing between www and non-www URLs

在www和非www网址之间进行选择

网站所有者反复提出的问题是,是否选择非 www 或 www 网址。本页面提供了一些有关最好的建议。

什么是域名?

In an HTTP URL, the first substring that follows the initial http:// or https:// is called the domain. It is the name of the server where the document resides.

服务器不一定是物理机器:几台服务器可以驻留在同一台物理机器上。或者,一台服务器可以由多台机器处理,合作产生答案或平衡它们之间的请求负载。关键是,一个域名在语义上代表一台服务器

那么,我必须为我的网站选择一个还是另一个?

  • 是的,你需要选择一个并坚持下去。选择哪一个作为您的规范位置是您的选择,但是如果您选择一个,请坚持使用它。它会让你的网站对用户和搜索引擎更加一致。这包括始终链接到所选域名(如果您在网站中使用相对 URL,这应该不难),并始终将链接(通过电子邮件/社交网络等)共享到同一个域名。

  • 不,你可以有两个。重要的是你是一致的,并与哪一个是官方域名一致。这个官方域名称为 规范 名称。你所有的绝对链接都应该使用它。但即便如此,您仍然可以使其他域名正常工作:HTTP 允许使用两种技术,以便您的用户或搜索引擎明确哪些域是规范域,同时仍允许非规范域工作并提供预期页面。

因此,请选择一个您的域名作为您的域名!下面有两种技术可以让非规范域继续工作。

规范 URL 的技巧

有不同的方法可以选择哪个网站是规范的

使用 HTTP 301重定向

在这种情况下,您需要配置接收 HTTP 请求的服务器(对于www和非www URL,这很可能是相同的),以响应301对非规范域的任何请求的足够 HTTP 响应。这会将尝试访问非规范 URL 的浏览器重定向到其规范等效项。例如,如果您选择使用非www网址作为规范类型,则应将所有 www 网址重定向到其没有 www 的等效URL。

示例:

1. 服务器收到请求http://www.example.org/whaddup(当规范域是 example.org时)

2. 服务器301使用包含Location标题的代码进行回答: http://example.org/whaddup

3. 客户端向规范域发出请求: http://example.org/whatddup

HTML5样板项目有一个例子如何配置Apache服务器重定向到一个域到另一个

运用 <link rel="canonical">

可以在页面中添加一个特殊的 HTML <link>元素来指​​示页面的规范地址是什么。这对页面的人类读者没有任何影响,但会告知搜索引擎搜寻器页面实际所在的位置。这样,搜索引擎就不会多次索引同一页面,有可能导致它被视为重复的内容或垃圾邮件,甚至从搜索引擎结果页中删除或降低您的页面。

当添加这样的标签时,您为两个域提供相同的内容,告诉搜索引擎哪些 URL 是规范的。在前面的例子中,http://www.example.org/whaddup会提供相同的内容http://example.org/whaddup,但<link>在头部还有一个额外的元素:

<link href="http://example.org/whaddup" rel="canonical">

与以前的情况不同,浏览器历史记录会将非www和www的 URL 视为独立条目。

让您的网页适用于两者

利用这些技术,您可以配置服务器以正确响应www前缀和非www前缀域。这样做是一个很好的建议,因为您无法预测哪些 URL 用户将在浏览器的 URL 栏中输入内容。选择哪种类型作为规范位置,然后将其他类型重定向到它是一个问题。

决定的案件

这是一个非常主观的话题,它可以被认为是一个自相矛盾的问题。如果您想深入阅读,请参阅有关该主题的许多文章