URL中的UTF8组件,是否区分大小写?

时间:2012-07-20 03:04:56

标签: http url url-rewriting googlebot

我理解URL应区分大小写,例如

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


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

应该是两件事。

但UTF-8是否也应区分大小写,例如?

http://zh.wikipedia.org/wiki/%E8%A7%82%E6%B5%8B%E5%A4%A9%E6%96%87%E5%AD%A6

VS

http://zh.wikipedia.org/wiki/%e8%a7%82%e6%b5%8b%e5%a4%a9%e6%96%87%e5%ad%a6

它们应该相等吗?

我问的原因是:Googlebot继续使用网址的大写字母,尽管我的网站都使用小写网址。

4 个答案:

答案 0 :(得分:1)

我不能在这个问题上100%具有权威性,但如果你停下来考虑如何将URL存储在搜索索引,网址表或Google使用的任何数据存储中,我无法想象URL不会以某种方式被标准化。

任何类型的规范化都应该将URL解码为字符串,因此应该没有区别。如果谷歌使用%编码存储URL,我会感到惊讶。他们可以用UTF-8存储文本;百分号是让人类可以看到的东西。

谷歌“使用”大写变体只是为了显示和报告目的,我猜。我认为URL编码根本不存储。

答案 1 :(得分:0)

由于它们应该是十六进制字符对,因此编码字符的小写和大写变体应该被认为是等价的(例如,0xab和0xAB是相同的值)。

答案 2 :(得分:0)

对于Googlebot而言,很难预测它从何处获取信息。即使您只使用小写链接到它并且它在您的XML站点地图中以小写形式链接,也可能有人以大写形式链接到您的站点。

Google将URL视为区分大小写是正确的。这就是他们支持rel=canonical specification的原因。如果您正确使用了rel =规范规范,我不会担心Googlebot会访问带有全部大写字母的网址。当他们处理索引页面时,它会将所有页面“值”合并到规范URL。

如果您想更加明确,可以将所有大写字母请求重定向到小写版本。所以Googlebot将遵循301s到小写版本。

另请注意,即使您有301和rel =规范......您也会看到Googlebot将继续抓取所有大写字母的网址。即使这些网址是404或410,也会发生这种情况。基本上,Googlebot永远不会忘记网址,并且有时会尝试一下它知道存在的旧网址,或者链接仍指向它...即使他们'很久很久了。

答案 3 :(得分:0)

网址的百分比编码部分应规范化为相同的网址。这个维基百科页面应该给你所有的答案;)

http://en.wikipedia.org/wiki/URL_normalization