云水论坛

标题: robots.txt [打印本页]

作者: 滴    时间: 2010-10-28 10:43
标题: robots.txt
 搜索引擎访问一个网站时,它首先会检查该网站的根域下是否有一个叫做robots.txt的纯文本文件。Robots.txt文件用于限定搜索引擎对其网站的访问范围,即告诉搜索引擎网站中哪些文件是允许它进行检索(下载)的。这就是大家在网络上常看到的“拒绝Robots访问标准”(Robots Exclusion Standard)。下面我们简称RES。 Robots.txt文件的格式:Robots.txt文件的格式比较特殊,它由记录组成。这些记录通过空行分开。其中每条记录均由两个域组成:

  1) 一个User-Agent(用户代理)字符串行;

  2) 若干Disallow字符串行。

  记录格式为: ":"

  下面我们分别对这两个域做进一步说明。

  User-agent(用户代理):

  User-agent行(用户代理行) 用于指定搜索引擎robot的名字,以Google的检索程序Googlebot为例,有:User-agent: Googlebot

  一个robots.txt中至少要有一条User-agent记录。如果有多条User-agent记录,则说明有多个robot会受到RES标准的限制。当然了,如果要指定所有的robot,只需用一个通配符"*"就搞定了,即:User-agent: * Disallow(拒绝访问声明):

  在Robots.txt文件中,每条记录的第二个域是Disallow:指令行。这些Disallow行声明了该网站中不希望被访问的文件和(或)目录。例如"Disallow: email.htm"对文件的访问进行了声明,禁止Spiders下载网站上的email.htm文件。而"Disallow: /cgi-bin/"则对cgi-bin目录的访问进行了声明,拒绝Spiders进入该目录及其子目录。Disallow声明行还具有通配符功能。例如上例中"Disallow: /cgi-bin/"声明了拒绝搜索引擎对cgi-bin目录及其子目录的访问,而"Disallow:/bob"则拒绝搜索引擎对/bob.html和/bob/indes.html的访问(即无论是名为bob的文件还是名为bob的目录下的文件都不允许搜索引擎访问)。Disallow记录如果留空,则说明该网站的所有部分都向搜索引擎开放。

  空格 & 注释

  在robots.txt文件中,凡以"#"开头的行,均被视为注解内容,这和UNIX中的惯例是一样的。但大家需要注意两个问题:

  1) RES标准允许将注解内容放在指示行的末尾,但这种格式并不是所有的Spiders都能够支持。譬如,并不是所有的Spiders都能够正确理解"Disallow: bob #comment"这样一条指令。有的Spiders就会误解为Disallow的是"bob#comment"。最好的办法是使注解自成一行。

  2) RES标准允许在一个指令行的开头存在空格,象"Disallow: bob #comment",但我们也并不建议大家这么做。

  Robots.txt文件的创建:

  需要注意的是,应当在UNIX命令行终端模式下创建Robots.txt纯文本文件。好的文本编辑器一般都能够提供UNIX模式功能,或者你的FTP客户端软件也“应该”能够替你转换过来。如果你试图用一个没有提供文本编辑模式的HTML编辑器来生成你的robots.txt纯文本文件,那你可就是瞎子打蚊子——白费力气了。

  对RES标准的扩展:

  尽管已经提出了一些扩展标准,如Allow行或Robot版本控制(例如应该忽略大小写和版本号),但尚未得到RES工作组的正式批准认可。

  附录I. Robots.txt用法举例:

  使用通配符"*",可设置对所有robot的访问权限。

  User-agent: *

  Disallow:

  表明:允许所有搜索引擎访问网站下的所有内容。

  User-agent: *

  Disallow: /

  表明:禁止所有搜索引擎对网站下所有网页的访问。

  User-agent: *

  Disallow: /cgi-bin/Disallow: /images/

  表明:禁止所有搜索引擎进入网站的cgi-bin和images目录及其下所有子目录。需要注意的是对每一个目录必须分开声明。

  User-agent: Roverdog

  Disallow: /

  表明:禁止Roverdog访问网站上的任何文件。

  User-agent: Googlebot

  Disallow: cheese.htm

  表明:禁止Google的Googlebot访问其网站下的cheese.htm文件。

  上面介绍了一些简单的设置,对于比较复杂的设置,可参看一些大型站点如CNN或Looksmart的robots.txt文件(www.cnn.com/robots.txt, www.looksmart.com/robots.txt )

  附录II. 相关robots.txt文章参考:

  1. Robots.txt常见问题解析

  2. Robots Meta Tag的使用

  3. Robots.txt检测程序
作者: 滴    时间: 2010-10-28 10:43

  User-agent: *

  Disallow: /

  表明:禁止所有搜索引擎对网站下所有网页的访问

------------------------nnd


作者: 滴    时间: 2010-10-28 10:44

搜狗不讲这个?


作者: 滴    时间: 2010-10-28 10:55

太恶劣了,搜狗完全无视任何robots.txt,但它的条款中竟然蓄意欺骗人,说它会支援robots.txt:

sogou spider支持robots协议,您可以在网站的根目录放置robots.txt。
robots.txt的规则请参阅http://www.robotstxt.org/。
但是新更新的robots.txt可能得过几个星期才能体现出效果来。

我的robots.txt中禁止搜寻和indexing的部份已经有一年半未动过了。之前已经封禁过一次的了,那次不记得是什么robot,疯狂地下载,连带网站被DoS了。但最近忽然发现搜狗又很频密地index我的禁地。虽然不如有些人所说每秒一次那么令人髪指,但也好不到那里去,这些情况很多人都投诉过。对于这些流氓搜寻引擎,我也不是什么善男信女:


Rewritecond %{HTTP_USER_AGENT} "^Sogou"
RewriteRule .* http://www.sogou.com/ [L,R=301]


一招还嫌不够,再来另一招必杀技:


iptables -A INPUT -m limit -p tcp --tcp-flags SYN,RST,ACK,FIN ACK -s 220.181.0.0/16 --dport 80 --limit 3/minute --limit-burst 1
iptables -A INPUT -j DROP -p tcp -s 220.181.0.0/16 --dport 80


不是单纯的DROP,我是有心玩的。还有,似乎搜狗会动用多个IP做robot,一个个IP来block不及围骰通杀来得痛快。况且百度也是用同一段IP的,就让百度和搜狗自行决定每分钟三个packet怎样分配吧。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chqdnico/archive/2008/08/04/2766380.aspx


作者: 滴    时间: 2010-10-28 10:56

所有迹象表明,我的推断是正确的。


作者: 滴    时间: 2010-10-28 11:06

受robots.txt文件的限制的搜索引擎,几乎不收录网站网页。

百度只收录首页,谷歌(选择性)收录ASP页面。雅虎和google.com收录页面有相似支持。

它们收录的共同特点是:勉强收录页面只有url,没有显示TITLE.百度更没有快照。


作者: 滴    时间: 2010-10-28 11:09
还有,PR似乎不受影响!
作者: 滴    时间: 2010-10-28 11:12

汗颜,!!!时间。。。。。时间。。。。


作者: 滴    时间: 2010-10-28 13:44
php 网站没有收录 (搜狗)




欢迎光临 云水论坛 (http://www.yunshui.net/) Powered by Discuz! X2.5