robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
每个网站,或每个域名(包括子域名),只能有一个robots.txt。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
robots.txt文件放在哪里?
robots.txt文件应该放置在网站根目录下,而且文件名必须全部小写。举例来说,当spider访问一个网站(比如http://www.abc.com)时,首先会检查该网站中是否存在http://www.abc.com/robots.txt这个文件,如果Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。
| 网站 URL | 相应的 robots.txt的 URL |
| http://www.w3.org/ | http://www.w3.org/robots.txt |
| http://www.w3.org:80/ | http://www.w3.org:80/robots.txt |
| http://www.w3.org:1234/ | http://www.w3.org:1234/robots.txt |
| http://w3.org/ | http://w3.org/robots.txt |
在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow和Allow行,详细情况如下:
robots.txt语法
简单的robots.txt 文件仅使用这两条规则:
User-Agent: (填写适用下列规则的漫游器 )
Disallow: (填写要拦截的网页)
这两行被视为文件中的一个条目,您可根据需要写任意多个条目。您可在一个条目中包含多个 Disallow 行和多个 User-Agent。
User-agent:
该项的值用于描述搜索引擎robot的名字。在”robots.txt”文件中,如果有多条User-agent记录说明有多个robot会受到”robots.txt”的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则对任何robot均有效,在”robots.txt”文件中,”User-agent:*”这样的记录只能有一条。如果在”robots.txt”文件中,加入”User-agent:SomeBot”和若干Disallow、Allow行,那么名为”SomeBot”只受到”User-agent:SomeBot”后面的Disallow和Allow行的限制。
Disallow:
该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被robot访问。例如”Disallow:/help”禁止robot访问/help.html、/helpabc.html、/help/index.html,而”Disallow:/help/”则允许robot访问/help.html、/helpabc.html,不能访问/help/index.html。”Disallow:”说明允许robot访问该网站的所有url,在”/robots.txt”文件中,至少要有一条Disallow记录。如果”/robots.txt”不存在或者为空文件,则对于所有的搜索引擎robot,该网站都是开放的。
• 要拦截整个网站,请使用正斜扛。
Disallow:/
• 要拦截目录及其中的所有内容,请在目录名后添加正斜扛。
Disallow:/private_directory/
• 要拦截网页,请列出该网页。
Disallow:/private_file.html
• 网址区分大小写。例如:Disallow:/private_file.html
会拦截 private_file.html,
但不会拦截 Private_File.html。
Allow:(Google、百度和雅虎的蜘蛛还支持Allow语法)
该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL是允许robot访问的。例如”Allow:/hibaidu”允许robot访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。
需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。
User-Agent:Googlebot
Disallow:/专用*/
要拦截对所有包含问号 (?) 的网址的访问,可使用下列条目:
User-agent:*
Disallow:/*?
使用 $ 匹配网址的结束字符
您可使用 $ 字符指定与网址的结束字符进行匹配。例如,要拦截以 .asp 结尾的网址,可使用下列条目:
User-Agent:Googlebot
Disallow:/*.asp$
您可将此模式匹配与 Allow 指令配合使用。例如,如果 ? 表示一个会话 ID,您可排除所有包含该 ID 的网址,确保 搜索引擎蜘蛛不会抓取重复的网页。但是,以 ? 结尾的网址可能是您要包含的网页版本。在此情况下,可对 robots.txt 文件进行如下设置:
User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/ *? 一行将拦截包含 ? 的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号 (?),而后又是任意字符串的网址)。
Allow: /*?$ 一行将允许包含任何以 ? 结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号 (?),问号之后没有任何字符的网址)。
URL匹配举例
| Allow或Disallow的值 | URL | 匹配结果 |
| /tmp | /tmp | yes |
| /tmp | /tmp.html | yes |
| /tmp | /tmp/a.html | yes |
| /tmp/ | /tmp | no |
| /tmp/ | /tmphoho | no |
| /tmp/ | /tmp/a.html | yes |
| /Hello* | /Hello.html | yes |
| /He*lo | /Hello,lolo | yes |
| /Heap*lo | /Hello,lolo | no |
| html$ | /tmpa.html | yes |
| /a.html$ | /a.html | yes |
| htm$ | /a.html | no |
robots.txt文件用法举例
| 例1. 禁止所有搜索引擎访问网站的任何部分 下载该robots.txt文件 |
User-agent: * Disallow: / |
| 例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt”) |
User-agent: * Disallow: 或者 User-agent: * Allow: / |
| 例3. 仅禁止Baiduspider访问您的网站 | User-agent: Baiduspider Disallow: / |
| 例4. 仅允许Baiduspider访问您的网站 | User-agent: Baiduspider Disallow:User-agent: * Disallow: / |
| 例5. 禁止spider访问特定目录 在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即robot不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不能写成 “Disallow: /cgi-bin/ /tmp/”。 |
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
| 例6. 允许访问特定目录中的部分url | User-agent: * Allow: /cgi-bin/see Allow: /tmp/hi Allow: /~joe/look Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
| 例7. 使用”*”限制访问url 禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)。 |
User-agent: * Disallow: /cgi-bin/*.htm |
| 例8. 使用”$”限制访问url 仅允许访问以”.htm”为后缀的URL。 |
User-agent: * Allow: .htm$ Disallow: / |
| 例9. 禁止访问网站中所有的动态页面 | User-agent: * Disallow: /*?* |
| 例10. 禁止Baiduspider抓取网站上所有图片 仅允许抓取网页,禁止抓取任何图片。 |
User-agent: Baiduspider Disallow: .jpg$ Disallow: .jpeg$ Disallow: .gif$ Disallow: .png$ Disallow: .bmp$ |
| 例11. 仅允许Baiduspider抓取网页和.gif格式图片 允许抓取网页和gif格式图片,不允许抓取其他格式图片 |
User-agent: Baiduspider Allow: .gif$ Disallow: .jpg$ Disallow: .jpeg$ Disallow: .png$ Disallow: .bmp$ |
| 例12. 仅禁止Baiduspider抓取.jpg格式图片 | User-agent: Baiduspider Disallow: .jpg$ |
以上内容的提供者有:
百度百科、百度搜索帮助中心
http://www.doumiao.net/www/12/2008-08/739.html
aoker只是针对本文所述问题的相关内容进行整理,方便自己和其它爱好者学习!
相关内容持续整理中………….谢谢关注…………
