【问题标题】:Canonical URL and URL rewriting规范 URL 和 URL 重写
【发布时间】:2014-10-04 10:44:22
【问题描述】:

最近我在阅读有关 HTTP 的内容,遇到了 URL 重写和 URL 规范化。

我了解到,当能够从多个 URL 加载同一个网页时,会发生 URL 规范化错误,例如:

http://www.example.com

http://www.example.com/

http://example.com

http://example.com/

http://www.example.com/index.php

首先,谁确定输入http://example.com会自动重定向到 http://www.example.com?Is 我的托管公司服务器中的设置?

其次,链接 rel="canonical" 是否解决了问题?例如将下面的代码插入到页面的头部http://www.example.com/index.php

<link rel="canonical" href="http://www.example.com" />

如果这解决了问题,我如何检查它是否正常工作?我会看到 URL 从 http://www.example.com/index.php 更改为 http://www.example.com 吗?因为我做到了,我没有看到任何变化。

通过.htaccess文件的301重定向是否比rel="canonical"解决方案更好?

如果我(通过 .htaccess)将 http://www.example.com/index.php 重写为 http://www.example.com ,这将是一个解决方案(关于重复内容)吗?因为对我来说,重写看起来更像是视觉上的改变,而不是其他任何东西。

提前致谢。

【问题讨论】:

    标签: apache .htaccess url rewrite canonical-link


    【解决方案1】:

    首先,谁确定输入http://example.com 会自动重定向到http://www.example.com?Is 这是我托管公司服务器中的设置?

    托管公司的服务器,或者您可以创建 301 重定向以将所有内容定向到规范 URL。

    其次,链接 rel="canonical" 是否解决了问题?例如将下面的代码插入到页面的头部http://www.example.com/index.php

    它会告诉搜索引擎的索引机器人之类的 URL 是相同的,它不会将您重定向到实际的规范 URL。浏览器甚至可以选择基于具有不同规范 URL 的页面进行缓存。

    做一个或另一个,或两者都做,取决于你想做什么。您是否希望人们能够访问所有不同的 URL(使用规范链接)或者您是否希望强制所有请求在浏览器的地址栏中看起来相同(使用 301 重定向)。通过 301 重定向,索引机器人还将知道一个 URL 被永久重定向到另一个 URL,并且与旧 URL 相关的任何元数据都应该(在某种程度上)应用于新 URL。

    【讨论】:

    • 所以把example.com/index.php改写成example.com是没有用的。相反,最好将example.com/index.php 重定向到example.com。我说得对吗?
    • @christostsang 是的,“重写”是一个服务器端进程。它不会改变客户端(浏览器、机器人等)认为它看到的内容。 “重定向”是一个全新的请求。服务器响应“你想要 X,但它已移至 Y,改为加载 Y”。然后浏览器为“Y”URL 创建一个全新的请求。这会改变浏览器地址栏中的内容。
    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2013-08-14
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多