Robots.txt 是存放在站點(diǎn)根目錄下的一個(gè)純文本文件。雖然它的設(shè)置很簡(jiǎn)單,但是作用卻很強(qiáng)大。它可以指定搜索引擎蜘蛛只抓取指定的內(nèi)容,或者是禁止搜索引擎蜘蛛抓取網(wǎng)站的部分或全部?jī)?nèi)容。
使用方法:
Robots.txt 文件應(yīng)該放在網(wǎng)站根目錄下,并且該文件是可以通過(guò)互聯(lián)網(wǎng)進(jìn)行訪(fǎng)問(wèn)的。
例如:如果您的網(wǎng)站地址是 http://www.yourdomain.com/那么,該文件必須能夠通過(guò) http://www.yourdomain.com/robots.txt 打開(kāi)并看到里面的內(nèi)容。
格式:
User-agent:
用于描述搜索引擎蜘蛛的名字,在" Robots.txt "文件中,如果有多條User-agent記錄說(shuō)明有多個(gè)搜索引擎蜘蛛會(huì)受到該協(xié)議的限制,對(duì)該文件來(lái)說(shuō),至少要有一條User-agent記錄。如果該項(xiàng)的值設(shè)為*,則該協(xié)議對(duì)任何搜索引擎蜘蛛均有效,在" Robots.txt "文件中,"User-agent:*"這樣的記錄只能有一條。
Disallow:
用于描述不希望被訪(fǎng)問(wèn)到的一個(gè)URL,這個(gè)URL可以是一條完整的路徑,也可以是部分的,任何以Disallow開(kāi)頭的URL均不會(huì)被Robot訪(fǎng)問(wèn)到。
舉例:
例一:"Disallow:/help"是指/help.html 和/help/index.html都不允許搜索引擎蜘蛛抓取。
例二:"Disallow:/help/"是指允許搜索引擎蜘蛛抓取/help.html,而不能抓取/help/index.html。
例三:Disallow記錄為空說(shuō)明該網(wǎng)站的所有頁(yè)面都允許被搜索引擎抓取,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"是一個(gè)空文件,則對(duì)于所有的搜索引擎蜘蛛,該網(wǎng)站都是開(kāi)放的可以被抓取的。
#:Robots.txt 協(xié)議中的注釋符。
綜合例子 :
例一:通過(guò)"/robots.txt"禁止所有搜索引擎蜘蛛抓取"/bin/cgi/"目錄,以及 "/tmp/"目錄和 /foo.html 文件,設(shè)置方法如下:
User-agent: *
Disallow: /bin/cgi/
Disallow: /tmp/
Disallow: /foo.html
例二:通過(guò)"/robots.txt"只允許某個(gè)搜索引擎抓取,而禁止其他的搜索引擎抓取。如:只允許名為"slurp"的搜索引擎蜘蛛抓取,而拒絕其他的搜索引擎蜘蛛抓取 "/cgi/" 目錄下的內(nèi)容,設(shè)置方法如下:
User-agent: *
Disallow: /cgi/
User-agent: slurp
Disallow:
例三:禁止任何搜索引擎抓取我的網(wǎng)站,設(shè)置方法如下:
User-agent: *
Disallow: /
例四:只禁止某個(gè)搜索引擎抓取我的網(wǎng)站如:只禁止名為“slurp”的搜索引擎蜘蛛抓取,設(shè)置方法如下:
User-agent: slurp
Disallow: /
更多參考資料 (英文版)
robots.txt是什么:
robots.txt是一個(gè)協(xié)議,而不是一個(gè)命令。robots.txt是搜索引擎中訪(fǎng)問(wèn)網(wǎng)站的時(shí)候要查看的第一個(gè)文件。robots.txt文件告訴蜘蛛程序在服務(wù)器上什么文件是可以被查看的,也可以指定sitemap的路徑。
當(dāng)一個(gè)搜索蜘蛛訪(fǎng)問(wèn)一個(gè)站點(diǎn)時(shí),它會(huì)首先檢查該站點(diǎn)根目錄下是否存在robots.txt,如果存在,搜索機(jī)器人就會(huì)按照該文件中的內(nèi)容來(lái)確定訪(fǎng)問(wèn)的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪(fǎng)問(wèn)網(wǎng)站上所有沒(méi)有被口令保護(hù)的頁(yè)面。
Google和百度官方建議,僅當(dāng)您的網(wǎng)站包含不希望被搜索引擎收錄的內(nèi)容時(shí),才需要使用robots.txt文件。如果您希望搜索引擎收錄網(wǎng)站上所有內(nèi)容,請(qǐng)勿建立robots.txt文件。
robots.txt必須放置在一個(gè)站點(diǎn)的根目錄下,而且文件名必須全部小寫(xiě)。robots.txt必須遵循robots.txt協(xié)議使用標(biāo)準(zhǔn)語(yǔ)法,嚴(yán)格按照用法來(lái)編寫(xiě),不然會(huì)造成搜索引擎無(wú)法訪(fǎng)問(wèn)你的網(wǎng)站。
robots.txt文件的格式
"robots.txt"文件包含一條或更多的記錄,這些記錄通過(guò)空行分開(kāi)(以CR,CR/NL, or NL作為結(jié)束符),每一條記錄的格式如下所示:
<field><optional space><value><optional space>
在該文件中可以使用#進(jìn)行注解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開(kāi)始,后面加上若干Disallow和Allow行,詳細(xì)情況如下:
User-agent:
該項(xiàng)的值用于描述搜索引擎robot的名字。在"robots.txt"文件中,如果有多條User-agent記錄說(shuō)明有多個(gè)robot會(huì)受 到"robots.txt"的限制,對(duì)該文件來(lái)說(shuō),至少要有一條User-agent記錄。
如果該項(xiàng)的值設(shè)為*,則對(duì)任何robot均有效, 在"robots.txt"文件中,"User-agent:*"這樣的記錄只能有一條。如果在"robots.txt"文件中,加入"User- agent:SomeBot"和若干Disallow、
Allow行,那么名為"SomeBot"只受到"User-agent:SomeBot"后面的 Disallow和Allow行的限制。
Disallow:
該項(xiàng)的值用于描述不希望被訪(fǎng)問(wèn)的一組URL,這個(gè)值可以是一條完整的路徑,也可以是路徑的非空前綴,以Disallow項(xiàng)的值開(kāi)頭的URL不會(huì)被 robot訪(fǎng)問(wèn)。
例如"Disallow:/help"禁止robot訪(fǎng)問(wèn)/help.html、/helpabc.html、/help /index.html,而"Disallow:/help/"則允許robot訪(fǎng)問(wèn)/help.html、/helpabc.html,
不能訪(fǎng)問(wèn) /help/index.html。"Disallow:"說(shuō)明允許robot訪(fǎng)問(wèn)該網(wǎng)站的所有url,在"/robots.txt"文件中,至少要有一 條Disallow記錄。如果"/robots.txt"不存在或者為空文件,
則對(duì)于所有的搜索引擎robot,該網(wǎng)站都是開(kāi)放的。
Allow:
該項(xiàng)的值用于描述希望被訪(fǎng)問(wèn)的一組URL,與Disallow項(xiàng)相似,這個(gè)值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項(xiàng)的值開(kāi)頭的URL 是允許robot訪(fǎng)問(wèn)的。
例如"Allow:/hibaidu"允許robot訪(fǎng)問(wèn)/hibaidu.htm、/hibaiducom.html、 /hibaidu/com.html。一個(gè)網(wǎng)站的所有URL默認(rèn)是Allow的,所以Allow通常與Disallow搭配使用,
實(shí)現(xiàn)允許訪(fǎng)問(wèn)一部分網(wǎng)頁(yè) 同時(shí)禁止訪(fǎng)問(wèn)其它所有URL的功能。
使用"*"and"$":
Baiduspider支持使用通配符"*"和"$"來(lái)模糊匹配url。
"$" 匹配行結(jié)束符。
"*" 匹配0或多個(gè)任意字符。
robots.txt文件參考資料
robots.txt文件的更具體設(shè)置,請(qǐng)參看以下鏈接:
百度搜索幫助中心-禁止搜索引擎收錄的方法
Web Server Administrator's Guide to the Robots Exclusion Protocol
HTML Author's Guide to the Robots Exclusion Protocol
The original 1994 protocol description, as currently deployed
The revised Internet-Draft specification, which is not yet completed or implemented