注册
登录

您现在的位置是:首页 > 学无止境

如何使用 robots.txt 文件控制对网站的访问

木木彡82 2008-10-17 08:27:00 578人围观
创建 robots.txt 文件最简便的方法是使用网站管理员工具中提供的"生成 robots.txt"工具。 文件建好以后,您可以使用"分析 robots.txt"工具进行检查,确保文件正常无误。创建自己的 robots.txt 文件后,请用 robots....

创建 robots.txt 文件最简便的方法是使用网站管理员工具中提供的"生成 robots.txt"工具。 文件建好以后,您可以使用"分析 robots.txt"工具进行检查,确保文件正常无误。

创建自己的 robots.txt 文件后,请用 robots.txt 作为文件名将其保存到网站域名的根目录下。 漫游器会在此位置对您的文件进行检查。 如果您将文件保存在其他位置,漫游器便无法找到文件。

您也可以使用任何文本编辑器手动创建此 robots.txt 文件。 该文件应为 ASCII 编码的文本文件,而非 HTML 文件。 文件名应使用小写字母。

语法

最简单的 robots.txt 文件使用两条规则:

  • User-agent:应用下列规则的漫游器
  • Disallow:要拦截的网址

这两行会视为文件中的一个条目。 您可根据需要包含任意多个条目。 您可在一个条目中包含多个 Disallow 行和多个 User-agent。

User-agent 行中应列出什么内容?

User-agent 是一种特定的搜索引擎漫游器。 网络漫游器数据库列出了许多常用的漫游器。 您可以将某一条目设置为应用于特定漫游器(通过列示名称)或应用于所有漫游器(通过列示星号)。 应用于所有漫游器的条目应与下列条目类似:

User-agent: *

Google 使用多种不同的漫游器(User-agent)。 用于网络搜索的漫游器是 Googlebot。 Googlebot-Mobile 和 Googlebot-Image 等其他漫游器也遵循您为 Googlebot 设置的规则,但您也可以为这些特定漫游器设置特定的规则。

Disallow 行中应列出什么内容?

Disallow 行列出的是您要拦截的网页。 您可以列出某一具体网址或网址模式。 条目应以正斜杠 (/) 开头。

  • 要拦截整个网站,请使用正斜扛。
    Disallow: /
  • 要拦截目录及其中的所有内容,请在目录名后添加正斜杠。
    Disallow: /junk-directory/ 
  • 要拦截某个网页,请列出该网页。
    Disallow: /private_file.html
  • 要从 Google 图片搜索中删除特定图片,请添加如下内容:
    User-agent: Googlebot-Image
    Disallow: /images/狗.jpg 
  • 要从 Google 图片搜索中删除网站上的所有图片
    User-agent: Googlebot-Image
    Disallow: / 
  • 要拦截某一特定文件类型的文件(例如 .gif),请使用以下内容:
    User-agent: Googlebot
    Disallow: /*.gif$
  • 要在阻止网站页面被抓取的同时仍然在这些页面上显示 AdSense 广告,请禁止除 Mediapartners-Google 以外的所有漫游器。 这样可使页面不出现在搜索结果中,同时又能让 Mediapartners-Google 漫游器分析页面,从而确定要展示的广告。 Mediapartners-Google 漫游器并不与其他 Google User-agent 共享网页。 例如:
    User-agent: *
    Disallow: /folder1/
    
    User-agent: Mediapartners-Google
    Allow: /folder1/
模式匹配

Googlebot(但不是所有搜索引擎)遵循某些模式匹配。

  • 要匹配连续字符,请使用星号 (*)。例如,要拦截对所有以 private 开头的子目录的访问:
    User-agent: Googlebot
    Disallow: /private*/
  • 要拦截对所有包含问号 (?) 的网址的访问(具体地说,这种网址以您的域名开头,后接任意字符串,然后是问号,而后又是任意字符串),可使用以下条目:
    User-agent: Googlebot
    Disallow: /*?
  • 要指定与某个网址的结束字符相匹配,请使用 $。 例如,要拦截以 .xls 结束的所有网址,请使用:
    User-agent: Googlebot 
    Disallow: /*.xls$

    您可将此模式匹配与 Allow 指令配合使用。 例如,如果 ? 代表一个会话 ID,您可能希望排除包含 ? 的所有网址,以便确保 Googlebot 不会抓取重复网页。 但是以 ? 结束的网址 可能是您希望包含的网页的版本。 在此情况下,您可以对 robots.txt 文件进行如下设置:

    User-agent: *
    Allow: /*?$
    Disallow: /*?

    Disallow: / *? 指令将阻止包含 ? 的所有网址 (具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号,而后又是任意字符串的网址)。

    Allow: /*?$ 指令将包含以 ? 结束的所有网址 (具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号 (?),问号之后没有任何字符的网址)。

网址区分大小写。 例如,Disallow: /private_file.asp 将拦截 http://www.example.com/junk_file.asp,但允许 http://www.example.com/Junk_file1.asp

 

另外,我觉得有必要进行拓展说明,对robots meta进行一些介绍:

Robots META标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots META标签也是放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。

Robots META标签的写法:

Robots META标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。 content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。

INDEX 指令告诉搜索机器人抓取该页面;

FOLLOW 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;

Robots Meta标签的缺省值是INDEX和FOLLOW,只有inktomi除外,对于它,缺省值是INDEX,NOFOLLOW。

这样,一共有四种组合:

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">

其中

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">可以写成<META NAME="ROBOTS" CONTENT="ALL">;

<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">可以写成<META NAME="ROBOTS" CONTENT="NONE">

目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。例如:

<META NAME="googlebot" CONTENT="index,follow,noarchive">

表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。

文章评论

  • 登录后评论

点击排行