现在的位置: 首页 > 综合 > 正文

robots.txt的使用

2013年03月04日 ⁄ 综合 ⁄ 共 2467字 ⁄ 字号 评论关闭

    robots.txt只是告诉搜索引擎的Spider网站内哪些内容不允许其索引与收录,它并不是网站的必不可少的组成部分,一个未配置robots.txt的网站只不过对搜索引擎Spider的爬行不作限制而矣。从这个角度看,不设置robots.txt对网站功能没有影响。
  但另一方面,恰当地设置robots.txt,可以更好地维护Web 服务器,提高网站的综合性能。从这个角度,网站最好配置robots.txt。

Robots.txt带来的好处
  几乎所有的搜索引擎Spider都遵循robots.txt给出的爬行规则,协议规定搜索引擎Spider进入某个网站的入口即是该网站的robots.txt,当然,前提是该网站存在此文件。对于没有配置robots.txt的网站,Spider将会被重定向至404 错误页面,相关研究表明,如果网站采用了自定义的404错误页面,那么Spider将会把其视作robots.txt——虽然其并非一个纯粹的文本文件——这将给Spider索引网站带来很大的困扰,影响搜索引擎对网站页面的收录。

  robots.txt可以制止不必要的搜索引擎占用服务器的宝贵带宽,如email retrievers,这类搜索引擎对大多数网站是没有意义的;再如image strippers,对于大多数非图形类网站来说其也没有太大意义,但却耗用大量带宽。

  robots.txt可以制止搜索引擎对非公开页面的爬行与索引,如网站的后台程序、管理程序,事实上,对于某些在运行中产生临时页面的网站来说,如果未配置robots.txt,搜索引擎甚至会索引那些临时文件。

  对于内容丰富、存在很多页面的网站来说,配置robots.txt的意义更为重大,因为很多时候其会遭遇到搜索引擎Spider给予网站的巨大压力:洪水般的Spider访问,如果不加控制,甚至会影响网站的正常访问。

  同样地,如果网站内存在重复内容,使用robots.txt限制部分页面不被搜索引擎索引和收录,可以避免网站受到搜索引擎关于 duplicate content的惩罚,保证网站的排名不受影响。

robots.txt带来的风险及解决
    robots.txt同时也带来了一定的风险:其也给攻击者指明了网站的目录结构和私密数据所在的位置。虽然在Web服务器的安全措施配置得当的前提下这不是一个严重的问题,但毕竟降低了那些不怀好意者的攻击难度。
 比如说,如果网站中的私密数据通过www.yourdomain.com/private/index.html 访问,那么,在robots.txt的设置可能如下:

User-agent: *
Disallow: /private/

  这样,攻击者只需看一下robots.txt即可知你要隐藏的内容在哪里,在浏览器中输入www.yourdomain.com/private/ 便可访问我们不欲公开的内容。对这种情况,一般采取如下的办法:

设置访问权限,对/private/中的内容实施密码保护,这样,攻击者便无从进入。
另一种办法是将缺省的目录主文件index.html更名为其他,比如说abc-protect.html,这样,该内容的地址即变成www.yourdomain.com/private/abc-protect.htm,同时,制作一个新的index.html文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。

使用robots.txt控制搜索引擎抓取

  搜索引擎数据库中的所有网页,都是由Robot程序自动抓取收录的。但我们网站上总会有部分私密性数据不希望被搜索引擎抓取,这时候,就需要robots.txt。

  robots.txt 是一个标准文档,意在阻止搜索引擎的Spider(蜘蛛)从您的 Web 服务器下载某些或全部信息,控制Spider的搜索范围。robots.txt的设置很简单,只要用记事本或其他文本编辑器,依照自己的网站需求,设定一系列选项,然后将其上传到网站根目录即可。robots.txt的设置如下:

User-agent: 搜索引擎的spider代号
Disallow: 输入数据夹或文件名的路径

  如设定所有的spider都能够搜索及抓取整个网站。

User-agent: *
Disallow:

  如拒绝Google搜索及抓取整个网站,但允许其它的

User-agent: Googlebot
Disallow:

  如拒绝所有的Spider

User-agent: *
Disallow: /

  如拒绝所有的Spider搜索及抓取protect目录及seo目录下abc.html文件

User-agent: *
Disallow: /protect/
Disallow: /seo/abc.html

  如拒绝google搜索及抓取protect目录及seo目录下abc.html文件,但允许其他的

User-agent: Googlebot
Disallow: /protect/
Disallow: /seo/abc.html

  很简单吧?另有一点请记住,搜索引擎不会立即对robots.txt 文件所作的更改作出反应,必须等到搜索引擎下一次读取该文件。这段时间,依搜索引擎及具体网站情况,从几小时到几天不等。

robots.txt使用通配符
在标准的robots.txt语法中,只可在 User-agent 项中使用通配符,即使用“*”来代表所有搜索引擎的robots,而在 Disallow 项中,则不能使用通配符以灵活配置robots.txt。

  Google率先提供了对在robots.txt中使用通配符的扩展支持——至于是不是唯一一个支持通配符语法的搜索引擎则不敢确定——,在Disallow 项中可使用“*”与“$”,其中,”*”匹配任意字符串,而”$”则标志Disallow项目中任意名称的结尾。如下面的例子中,将禁止Googlebot索引收录gif文件:

User-agent:Googlebot
Disallow:/*.gif$

 

【上篇】
【下篇】

抱歉!评论已关闭.