robots.txt怎么写?网上很多地方都是错的,官方网上的说明又不清不楚!这里是最详robots.txt写法教程大全!

前言:


因为老了多健忘,

每次建个站,

每次都去查robots.txt的写法,

却每次搜索到不同的“标准”!

于是,干脆自己记下来,

以后只看自己的博文就行了!


====正文教材=================


一、初识robots.txt

robots.txt文件就是一个纯文本文件的协议,

它存在的目的是用来引导搜索引擎(蜘蛛)对站点url的收录或不收录的规范、声明。

一般:仅当您的网站包含有不希望被搜索引擎收录的内容时,才会需要使用robots.txt文件!


二、robots.txt的位置

robots.txt必须放在根目录下。

即:http://www.域名/robots.txt 可以访问到的地方。

比如本站的:http://qoogle.cn/robots.txt


三、robots.txt的书写格式规则、语法和通用符

1、首先,如果根目录下的robots.txt文件不存在或者文件内容为空,则对于所有的搜索引擎,该网站都是开放的!


2、User-agent:(接搜索引擎名字)

用于描述搜索引擎的名称。特指下面写的所有规则是针对User-agent:所指定的搜索引擎而言的。

如,百度蜘蛛:User-agent:Baiduspider

谷歌蜘蛛:User-agent:Googlebot

通常会这样指定所有的搜索引擎(蜘蛛):User-agent: *


3、Disallow:(接路径 或 文件名)

表示不允许搜索引擎收录的url信息(即路径信息)。

robots.txt文件中,至少要有一条Disallow记录,否则整个文件就毫无意义!


4、Allow:(接路径 或 文件名)

表示允许被收录的url信息。


5、Sitemap网页地图

Sitemap译为网页地图,其实它和robots.txt一样,也是是一种收录协议,可以说是robots.txt的一种扩展。

它有自己的语话和结构,这里就不多说。

需要知道的是它的后缀常用的有两种:谷歌为xml格式,百度为html格式(*.xml 和 *.html)

sitemap这种文件网上有在线生成,因为不懂所以去在线生成吧。呵呵。

robots.txt也有在线生成,但它结构简单,完成可以自己写。

PS:sitemap文件一般也放在根目录,但不是必须放在根目录。

robots.txt中引入sitemap文件时,必须用绝对路径!如:http://qoogle.cn/sitemap.html  本站好像没有^_^


6、通配符 * 和 $ 和 # 

星号*:表示代替0个或多个任意的字符。

处处可用,如可用在路径上或文件名上,用来模糊匹配你想要找出的那类东东。

如 *.html 就表示任意命名的.html文件,即所有html文件。

又如 5*.html 就表示5开头的任意html文件。


美元符号 $ :表示URL行末的结束符,即匹配以$前面的字符为最后的url。


井号 # :在robots.txt中就是注释、标注用,其后的内容不会被蜘蛛读取。


7、特别说明这个问号?

问号?在robots.txt中不是通配符,但我们常常在robots.txt文件中常常看到它。

其实?是在URL中是起到链接做用,特别是动态网站中,如本文网址是:http://qoogle.cn/?id=44

如果robots.txt里写一条Disallow: /*?*    那我的站点也就玩完了,

因为这样写禁止了所有动态网页的收录,没错,它就是这个特别用法!


8、格式很重要!

1、robots.txt文件名要小写(不知道是不是规则,反正没人大写!)。

2、User-agent、Disallow、Allow、Sitemap这些词都必须是第一个字母大写,后面的字母小写。

3、上述词后面会一定要有英文冒号 :,冒后号面必须有一个英文空格

4、上述词必须每条独立一行!顶格写。

5、Allow永远写在Disallow的前面!!

6、忘记哪里看到的去了,robots.txt的最后一条规则写完,请换行!即光标移到下一空行的行首。^_^不知道有没有好效果。


四、研究探索一下网上很多人问的robots.txt疑点。

1、robots.txt中的斜杠到底怎么用?是什么意思?

看个例子,

这是百度官方的例子!

# 例1 百度官方的:禁止所有搜索引擎访问网站的任何部分
User-agent: * 
Disallow: /


# 例2 百度官方的:允许所有的robot访问
User-agent: *
Disallow:

看上述官方例子,都是一条Disallow(不允许收录)语句,只是一斜杠的差别,结果却是禁止和允许之间的轮回!!!!!


官方还有一例:

# 例3 百度官方的:允许所有的robot访问
User-agent: *
Allow: /


qoogle总结:

斜杠 / :我们可以理解为“某目录下”。————非常重要!!!


用上面的总结来理解一下百度官方的例子:

例1:禁止“根”目录下的(东东)!

例2:禁止空(没有任何路径和文件标识!即不禁止任何东东,也就是允许所有!),

例3:允许“根”目录下的(东东)

好像全部讲通了!!!!

这个总结很重要!下面一直在用它!


再总结:

任何一条Disallow记录为空,表示该网站的所有部分都允许被访问!


2、路径文件夹有斜杠和没有斜杠什么区别?

引用百度官方的一段对Disallow的描述:

该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被 robot访问。例如"Disallow:/help"禁止robot访问/help.html、/helpabc.html、/help /index.html,而"Disallow:/help/"则允许robot访问/help.html、/helpabc.html,不能访问 /help/index.html。

我们用上面自己总结的东东来“理解”一下百度官方这段话中的例子的意思:

Disallow:/help ----> 禁止根目录下的“help”开头(非空前缀)的的东东。包括根目录下的所有以help开头的文件和文件夹!

即,能匹配到的URL是“http://域名/help……”当然包括了“http://域名/help/……”和 “http://域名/help123/……”等一大箩筐!!! 

和官方的说法不谋而合:禁止访问/help.html、/helpabc.html、/help/index.html。


Disallow:/help/ ----> 禁止根目录下的help目录下的(东东)。这话说的很明朗了,仅仅禁止根下的help目录下的东西,其它的一概不禁止!

即,能匹配到的URL是“http://域名/help/……”就是说help文件夹中的所有东东都拒绝了蜘蛛的方访,自然包括官方说的“不能访问 /help/index.html”,

而“/help.html、/helpabc.html”没在help文件夹下,自然可以访问!

又和官方的说法一致,而且非常好理解!


3、Disallow: .jpg$和Disallow: /.jpg$有区别吗?

翻查百度官方robots.txt案例说明,

早期百度官方用的是Disallow: /.jpg$,

现在查看,好像变成了Disallow: jpg$,

用我们的总结来解读一下:

Disallow: /.jpg$ ----> 禁止根目录下的以“.jpg”结尾的东东。能匹配到的URL是“http://域名/…….jpg”

Disallow: jpg$ -----> 禁止所有以“.jpg”结尾的东东。能匹配的到的URL是“http://…….jpg”

早其的,标示出了根目录,现在的没有标示出根目录,

如果一定要区分理解的话,只能从URL形态上来区分!

先了解两个名词解释:

什么是URL? ----(全球)  统一资源定位符。全球互联网上的每一个文件,都会有一个唯一的位置,我们叫它URL。即URL指向某一个文件!通常被叫着“网址”。

什么是路径 ? ----  互联网上或电脑中某一个文件、某一堆文件或某一个文件夹所在的通道,叫路径。

如果这个站点允许蜘蛛爬取网页中的外链文件,那么Disallow: /.jpg$ 似乎禁止不了,它表述的是站点服务器下的文件,没有被匹配到。而Disallow: jpg$却通过URL匹配到了,被禁止了!

估计就是这个区别了。

但是,让人大跌眼镜的是,用百度站长工具检验robots.txt,发现Disallow: jpg$的写法会报错!提示:冒号右边的路径非法!

真抓狂!!


五:robots.txt的隐私和网站安全问题

任何一个网站的robots.txt都是明文的。你可以通过http://域名/robtots.txt查看到它芳容!

如查你的后台文件夹是admin,你不想被收入,怕安全问题,你就会用Disallow: /admin/来禁止robot访问它。

可是明文描述的robots.txt却完完全全暴露了它的存在,哪怕是你改了文件夹的名字,也能被知道。

这时候,你可以用通配符*来模糊匹配它!

如写成:

# qoogle.cn原创robots.txt教程
User-agent: * 
Disallow: /a*/
# 或  Disallow: /a*n/ 等等这类模糊匹配。

dedeCMS网站的robots.txt例举:

估计你看不懂了!

User-agent: *
Allow: /h*/
Allow: /d*/rss/
Allow: /d*/rss/
Allow: /d*/rss/rssmap.html
Allow: /d*/rss/sitemap.html
Disallow: /a*/
Disallow: /d*/
Disallow: /e*or/
Disallow: /in*/
Disallow: /m*er/
Disallow: /p*/
Disallow: /s*/
Disallow: /u*/.html$
Disallow: /t*/d*t/
Disallow: /t*/p*/
Disallow: /t*/s*/
Disallow: .psd$
Disallow: .inc$
Disallow: /i*.php


=================来自网上。

六、穷举例子

允许所有搜索引擎访问网站的所有部分

User-agent: *
Disallow:

或者

User-agent: *
Allow: /


禁止所有搜索引擎访问网站的所有部分

User-agent: *
Disallow: /


只需要禁止蜘蛛访问某个目录,比如禁止admin、css、images等目录被索引

User-agent: *
Disallow: /css/
Disallow: /admin/
Disallow: /images/


屏蔽一个文件夹/templets,但是又能抓取里面的一个文件夹/templets/main的文件

User-agent: *
Allow: /templets/main/
Disallow: /templets


禁止访问/html/目录下的所有以”.php”为后缀的URL(包含子目录)

User-agent: *
Disallow: /html/*.php


仅允许访问.html后缀的所有文件,则使用“$”

User-agent:*
Allow: /.html$
Disallow: /


禁止索引网站中所有的动态页面

User-agent: *
Disallow: /*?*


禁止搜索引擎抓取我们网站上的所有图片(其它后缀图片可自由添加)

User-agent: *
Disallow: /.jpg$
Disallow: /.jpeg$
Disallow: /.gif$
Disallow: /.png$
Disallow: /.bmp$






如果文章对您有帮助|有启发|有共鸣|有“爽了”,请随意打赏。您的支持是我的动力和价值的体现。

----------我不是街头卖艺者,但我渴望被打赏,博客要生存下去不容易。
----------我不是酒店服务生,但我渴望被打赏,博主也有妻儿子女一家子人。
----------我不是乞丐叫花子,但我渴望被打赏,渴望被打赏的价值认同感。
----------我不是建筑搬运工,但我渴望被打赏,我是蜜蜂我阅读/挑选/整合/转载/传播。
----------我不是作家或教授,但我渴望被打赏,咱中国人也能主动为知识/为受益而付费。

感谢土豪的打赏!


一码支持:微信/支付宝

打赏qoogle的二维码


分享,也是您对我的热力支持。谢谢!

内容版权声明:除转载分类下的文章来源网络(直转或整合而成),其它皆为本站原创文章。

转载注明出处:http://qoogle.cn/?id=44

发表评论(不用注册哟!)

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。