上一篇义信科技麒麟老师为大家介绍了《robots.txt文件是什么?有什么作用?应该放在什么地方?》今天咱们接着介绍robots.txt的写法。
robots.txt怎么写?
User-agent
这个项目用来描述搜索引擎蜘蛛的名字。在”robots.txt”文件中,如果有多条User-agent记录,说明有多个搜索引擎蜘蛛会受到”robots.txt”的限制,对该文件来说,至少要有一条 User-agent记录。
如果想让任何爬虫抓取网站文件,该项值可以设置为*。如果在”robots.txt”文件中设置了”User-agent:*”,且后面加了”User-agent:baiduspider”和若干 Disallow、Allow 行,则名为baiduspider的蜘蛛就会受到后面的 Disallow 和 Allow 行指令的限制。
Disallow:
这个指令主要表达网站不希望被抓取的URL,后面的值可以是一个完整的路径,也可以是路径的非空前缀,表示以该项值开头的URL不希望被爬虫抓取,举个例子:”Disallow:/admin”,表示禁止抓取/admin.html、/adminabc.html、/admin/index.html,而”Disallow:/admin/”则允许爬虫抓取/admin.html、/adminabc.html,但是禁止访问/admin/data/;。”Disallow:”表示允许爬虫抓取网站上所有的URL。在robots.txt文件中,至少要有一条Disallow记录。如果网站的根目录下没有robots.txt文件或者robots.txt文件里面是空的,则表示允许搜索引擎爬虫抓取网站的任何一个URL。
Allow:
这个指令主要表示允许爬虫抓取网站的URL,与Disallow一样,后面的值可以是一个完整的路径,也可以是路径的非空前缀,表示以该项值开头的URL可以被蜘蛛抓取,例如“Allow:/sitemap”表示允许爬虫抓取/sitemap.html、/sitemap/1.html。一个网站的所有URL默认是Allow的,所以在撰写robots.txt文件时,Allow和Disallow是搭配使用的,达到允许抓取大部分URL的同时禁止抓取一小部分URL的效果。
“*”and”$”:
百度蜘蛛通过”*”and”$”来模糊匹配URL。”*”匹配0或多个任意字符;”$”匹配行结束符。

robots.txt文件撰写举例:
1、User-agent:Disallow:/
禁止所有搜索引擎访问网站中的任何部分
2、User-agent:*Allow:/
允许所有蜘蛛访问
3、User-agent:Baiduspider Disallow:/
仅禁止Baiduspider访问网站
4、User-agent:Baiduspider Allow:/User-agent:*Disallow:/
仅允许Baiduspider访问网站
5、User-agent:*Disallow:/cgi-bin/Disallow:/tmp/Disallow:/~joe/
禁止蜘蛛访问特定目录
6、User-agent:*Allow:/cgi-bin/see Allow:/tmp/hi Allow:/~joe/look Disallow:/cgi-bin/Disallow:/tmp/Disallow:/~joe/
允许搜索引擎蜘蛛访问特定目录中的部分URL
7、User-agent:Baiduspider Disallow:/.jpg$Disallow:/.jpeg$Disallow:/.gif$Disallow:/.png$Disallow:/*.bmp$
禁止Baiduspider抓取网站中所有图片
robots.txt文件使用误区
1、试图保持目录的秘密
如果你想要保留对公众隐藏的文件或目录,不要将它们全部列在robots.txt中,如下所示:
User-agent:*
Disallow:/admin/
Disallow:/myphoto.jpg
Disallow:/my.csv
这种写法为敌对爬虫提供了一种快速,简便的方法来查找你不希望他们找到的文件。
2、尝试控制特定的子域
假设你有一个包含许多不同子域的站点:
http://abc.com/
http://1.abc.com/
http://2.abc.com/
http://3.abc.com/
你想要创建单个robots.txt文件,然后尝试阻止它的子域,如下所示:
http://abc.com/robots.txt
User-agent:*
Disallow:1.abc.com
Disallow:2.abc.com
对不起,这不起作用,无法在robots.txt文件中指定子域(或域)。给定的robots.txt文件仅适用于从中加载的子域。
那么有没有办法阻止某些子域?答案是肯定的,要阻止某些子域而不阻止其他子域,需要提供来自不同子域的不同robots.txt文件。
这些robots.txt文件会阻止所有内容:
http://1.abc.com/robots.txt
http://2.abc.com/robots.txt
User-agent:*
Disallow:/
3、忘记了用户代理线
用户代理线是使用robots.txt的关键。在任何允许或禁止之前,文件必须要有用户代理行。如果robots.txt文件写下面的这样:
Disallow:/abc
Disallow:/acb
Disallow:/bac
实际上什么都不会被阻止,因为顶部没有用户代理行。该文件必须写成:
User-agent:*
Disallow:/abc
Disallow:/acb
Disallow:/bac
robots.txt文件撰写注意事项
注意区分网站不想被抓取或收录目录的大小写,百度会精确匹配指令后面的对应值,以防止robots协议无法生效。
以上就是义信科技麒麟老师对robots.txt文件是什么?有什么作用?应该放在什么地方的介绍,后期会更新其他robots文件相关的干货内容,请持续关注义信科技。
如果大家看完以上robots.txt相关的内容还有什么疑惑,欢迎下面评论区进行留言,麒麟老师会第一时间回复大家。
更多SEO、运营、营销推广相关的内容干货,可以查看网站其他相关栏目。关注我,帮助你成为互联网运营达人!
本文为原创文章,标题:robots.txt怎么写?robots.txt写法,网址:https://www.seoshisha.com/baiduseo/robots-txt-how.html
未经允许,禁止转载,如需转载,请联系邮箱:2692003558@qq.com,否则将追究法律责任!