http://www.baidu.com/robots.txt
百度的robots.txt最后有两行
……
User-agent: *
Disallow: /

按照robots协议的规则,这应该是禁止所有搜索引擎访问网站的任何部分!而事实上所有的搜索引擎对其抓取。
如果没有最后两行,对上面的写法都可以解释!但是为什么最后还要加上这个两行?
1、如果百度要禁止所有蜘蛛的抓取,之前的还有必要写吗?
2、如果最后两行无效,那有必要写吗?

个人的猜测是User-agent: * Disallow: /是对以上没有列出的蜘蛛进行抓取;比如说360。我猜测是否对,欢迎大家拍砖!
如果猜测是正确的,这是否是robots的另一个语法规则!也请各位大神说一下自己的观点!!!

夫唯 · 搜外网创始人,专注seo和小程序 解答

如果单独写出来,则这个蜘蛛只受其下面的几个Disallow和Allow行限制。
没写出来的,受User-agent: * 限制。如:360没被特地写出,则说明。。。

参考:http://www.baidu.com/search/Robots.html(官方页面已失效)

第七条:
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行的限制。

这个写法是没问题的,如果单独看这两行,则是表示禁止所有搜索引擎的,但前面针对每个搜索引擎都单独做了语句描述,而那些描述都是针对搜索引擎列出的,都是有效的,之所以把这两行放最后,是为了禁止前面没有列出的搜索引擎,比如360,你懂的。
简而言之百度的Robots.txt的写法就是百度只针对列出的搜索引擎开放,对没被列出的则禁止,包括360以及其他一些小的搜索引擎。

不是,Robots.txt命令是从上往下执行的,简单的说,百度的目的就是想禁止360,其他都不禁止,为什么不直接禁止360呢,还拐弯抹角?直接写就有恶性竞争的嫌疑了,这样写是最优的

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。