robots文件一般在根目录下,每一条记录通过空行分开,在该文件中可以使用#进行注释,支持模糊匹配,该文件是区分大小写的但不严格,通常以一行或多行User-agent开始,后面加上若干Disallow和Allow。
Disallow:该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀。Allow:该项的值用于描述希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的前缀。
值得提醒的是每个搜索引擎都协议文件的解读不一样,比如百度是支持”*”和”$”来模糊匹配url的。”*”匹配0或多个任意字符,”$”匹配行结束符。最重要的是这个语法是从上到下生效的,切记。
常见的用法在网上可以找到,这里就这儿工具说几个不常见的,但是有用的东西,你们可以举一反三。
屏蔽所jpg或png图片被抓取:Disallow:/*.jpg$ 或者Disallow:/*.png$
禁止抓取所有动态页面:
User-agent:*
Disallow:/*?*
只允许抓取html网页:
Allow:/*.html$
User-agent:*
Disallow:/
禁止抓取后台所有文件同时隐藏后台真实目录:
#就这儿注释:比如你后台目录名是htdoadmin
Disallow:/*doad*
同时这个文件也支持放入网站地图地址:
#就这儿工具注释:一般放在整体结尾
Sitemap: http://XXX.com/sitemap.xml
最后面填个坑吧:上面说这个文件语法是从上到下生效,你或者不明白。就这儿在此举例说明:
#就这儿工具注释:仅允许 Baiduspider访问您的网站
User-agent: Baiduspider
Allow:/
User-agent:*
Disallow:/
前2行允许了百度爬行,那么第3-4行即使屏蔽了所有引擎包括百度,依然是允许百度爬行的。你明白了吗?再补充一个例子吧:
User-agent:*
Allow:/nihao/qincai
Disallow:/nihao/
这个写法将会阻止爬行:http://baidu.com/nihao/abc或者http://baidu.com/nihao/
但不会阻止爬行:http://baidu.com/nihao/qincai123或者http://baidu.com/nihao/qincai/123
文章结尾问你一个问题,你可以迅速回答出来吗?请问robots.txt里出现disallow是对的吗?