首页
站长论坛BBS
救助
投稿
discuz视频教程
discuz技术支持
版块
登录
快速注册

搜索引擎会不会抓取带号哈希值的URL

tyz1480 2015-6-3 [交流] 来自PC 复制链接
0364
discuz使用视频教程
31idc

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
 在我的网站各个地址中,难免出现一些带#的URL,一般是通过点击某个链接,跳转到网页的某个位置,实现信息内容的快速定位。本站使用的文章内目录就是这样做的。但是,这种带#的URL搜索引擎会被收录吗?
          1、什么是哈希值?
          在阮一峰的博客中有一篇文章可以很好的解释哈希值,#值不是/post/122.html#comment-121,就会快速定位到id=\comment-121\或这个位置。
          2、搜索引擎会不会抓取带#号(哈希值)的URL
          答案是一般不会。搜索引擎抓取页面首先要遵循http协议,可是#不是协议内的内容。而实际上也是这样,我们没有见过搜索引擎的搜索结果中,哪一条记录可以快速定位到网页内的某个位置的。因此,希望通过在网站内外添加带#的锚链接来让搜索引擎第一次访问时快速定位是不现实的。当然,搜索引擎蜘蛛为了模拟真实用户,在进入网站之后,会通过一些技术实现模拟鼠标点击的效果,这个时候,页面的锚链接还是起作用,但任何链接在搜索结果中时,都不会带#。
          3、URL 中的 #! 有什么作用?
          这是一个违反2中的特例,谷歌会抓取带有#!的URL。Google规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用\#!\(这种URL在一般页面一般不会产生定位效果),Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。例如/#!/username等效于/?_escaped_fragment_=/username,而带?的URL是会被抓取的,所以#!的URL会被谷歌收录。
          4、搜索引擎会不会抓取带#号(哈希值)的URL给我们的启示
          一、不要试图用robots.txt屏蔽#的网址。我之前翻过一个错误,即在嗖录网的robots.txt中加入了disallow:/*#*规则,以试图屏蔽这些带#的URL被抓取。但实际上,这个做法是错误的,首先#在robots.txt是注释符号,它后面的内容会被注释掉,所以这条规则变成了disallow:/*,http://ha.laojiewang.com/即阻止收录本站所有页面,幸好我在今早发现,并马上进行了修改。其次,搜索引擎不会抓取带#的URL,因此没有必要加一条这样的规则。
          二、可以利用#和ajax结合来隐藏不想被抓取的内容。在我们的一些网页中,可能有些内容是我们不想直接告诉搜索引擎的,或者一些隐私不希望被抓取,因此我们可以采用#来控制这些信息的显示。例如我们增加一个按钮,当URL中带#show-info-123时,显示123的个人信息,而不带时不显示。而对于搜索引擎来说,会自动忽略带#的URL,因此123的个人信息不会被抓取。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表