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呢,还拐弯抹角?直接写就有恶性竞争的嫌疑了,这样写是最优的