一、概述
网站所有者使用/ robots.txt文件提供有关其网站网络机器人的指示;这就是所谓的机器人排除协议 (
The Robots Exclusion Protocol)。
它的作用机理: 一个网络机器人想要访问一个 Web 站点,比如说:http://www.example.com/welcome.html。在这之前,它会首先访问http://www.example.com/robots.txt,并发现:
User-agent: *
Disallow: /
"User-agent: *"意味这该小节的配置适用于所有的网络机器人。
“Disallow: /" 告诉网络机器人不应该访问该站点的任何页面。
使用 /robots.txt 时有两个重要的地方需要考虑:
- 网络机器人可以忽略你的 /robots.txt文件。尤其是“脚本小子”进行漏洞扫描使用的恶意网络机器人,收集邮件地址的垃圾邮件发送器根本就不会理睬这些。
- / robots.txt文件是一个公开的文件。不要在 /robots.txt 中包含私秘的网址信息,因为任何人都可以看到您的服务器哪些部分你不想让机器人访问。
参见:
二、详解
/ robots.txt 是一个事实上的标准,而不是由任何团体拥有的标准。有两个历史性的描述:
此外,还有外部资源:
/robots.txt 的发展并不积极。参见
What about further development of /robots.txt? 的更多讨论。
下面介绍如何在您的服务器上使用 /robots.txt 。
/robots.txt 放在哪里?
答案很简单:在您 Web 服务的顶极目录。
当机器人通过 URL 查找 “/robots.txt ”时,它会从URL中删除路径的组成部分(从第一个斜线起的所有东西),并用"/robots.txt"替换原来的位置。
例如:对于"http://www.example.com/welcome.html", 它会删除 "/welcome.html"并用“/robots.txt"代替,最后就成为了"http://www.example.com/robots.txt"。
因此,作为一个网站所有者,你必须将 "/robots.txt"放在正确的位置。通常情况下,它和你放“index.html"的位置一样。它的具体精确位置取决于你的 Web 应用程序。
记住:文件名所有字母都是小写:是"robots.txt",而不是"Robots.TXT"。
参见:
robot.txt文件里都写些什么:
“/robots.txt" 文件是包含一个或者多个记录的文本文件。通常它包含像下面那样的一个记录:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
在该示例里,有三个目录被排除。
注意"Disallow"后只能跟一个你想排除的URL,您不能这样些写 "Disallow:/cgi-bin/ /tmp/"。
同时在一个记录里也不能出现空白行,因为空白行使用来界定每个记录的。
还要注意,通配符和正则表达式即不能用在 User-agent 行也不能用在Disallow行。
"*"用在 User-agent 字段是一个特殊值,表示任何机器人。尤其是你不能这样用:
"User-agent: *bot*", "Disallow: /tmp/*" or "Disallow: *.gif"。
究竟隐藏什么依赖于你的应用程序。以下是一些例子:
(1) 对所有机器人隐藏整个应用服务
User-agent: *
Disallow: /
(2)允许机器人访问所有
User-agent: *
Disallow:
(或者仅仅创建一个空的 "/robots.txt" 文件,或者根本就不创建)
(3) 对所有机器人隐藏部分应用
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /junk/
(4) 对某一个具体的机器人隐藏
User-agent: BadBot
Disallow: /
(5) 仅允许某一个机器人访问
User-agent: Google
Disallow:
User-agent: *
Disallow: /
(6) 除了一个文件以外,其他的全部隐藏
由于当前没有"Allow"字段,所以做这件事有点尴尬。最简单的方法是把所有将被隐藏的文件放在一个单独的目录,
例如 "stuff",并将允许访问的文件放在于"stuff"同一级别的位置。
User-agent: *
Disallow: /~joe/stuff/
另外,您可以明确地禁止所有不允许访问的网页:
User-agent: *
Disallow: /~joe/junk.html
Disallow: /~joe/foo.html
Disallow: /~joe/bar.html
三、扩展用法
参见令一篇博客
robots.txt 文件的非标准扩展