搜索引擎訪(fǎng)問(wèn)一個(gè)網(wǎng)站時(shí),它首先會(huì )檢查該網(wǎng)站的根域下是否有一個(gè)叫做robots.txt的純文本文件。Robots.txt文件用于限定搜索引擎對其網(wǎng)站的訪(fǎng)問(wèn)范圍,即告訴搜索引擎網(wǎng)站中哪些文件是允許它進(jìn)行檢索(下載)的。
搜索引擎訪(fǎng)問(wèn)一個(gè)網(wǎng)站時(shí),它首先會(huì )檢查該網(wǎng)站的根域下是否有一個(gè)叫做robots.txt的純文本文件。Robots.txt文件用于限定搜索引擎對其網(wǎng)站的訪(fǎng)問(wèn)范圍,即告訴搜索引擎網(wǎng)站中哪些文件是允許它進(jìn)行檢索(下載)的。這就是大家在上??吹降?ldquo;拒絕Robots訪(fǎng)問(wèn)標準”(Robots Exclusion Standard)。下面我們簡(jiǎn)稱(chēng)RES。 Robots.txt文件的格式:Robots.txt文件的格式比較特殊,它由記錄組成。這些記錄通過(guò)空行分開(kāi)。其中每條記錄均由兩個(gè)域組成:
1) 一個(gè)User-Agent(用戶(hù)代理)字符串行;
2) 若干Disallow字符串行。
記錄格式為: “:”
下面我們分別對這兩個(gè)域做進(jìn)一步說(shuō)明。
User-agent(用戶(hù)代理):
User-agent行(用戶(hù)代理行) 用于指定搜索引擎robot的名字,以Google的檢索程序Googlebot為例,有:User-agent: Googlebot
一個(gè)robots.txt中至少要有一條User-agent記錄。如果有多條User-agent記錄,則說(shuō)明有多個(gè)robot會(huì )受到RES標準的限制。當然了,如果要指定所有的robot,只需用一個(gè)通配符“*”就搞定了,即:User-agent: * Disallow(拒絕訪(fǎng)問(wèn)聲明):
在Robots.txt文件中,每條記錄的第二個(gè)域是Disallow:指令行。這些Disallow行聲明了該網(wǎng)站中不希望被訪(fǎng)問(wèn)的文件和(或)目錄。例如“Disallow: email.htm”對文件的訪(fǎng)問(wèn)進(jìn)行了聲明,禁止Spiders下載網(wǎng)站上的email.htm文件。而“Disallow: /cgi-bin/”則對cgi-bin目錄的訪(fǎng)問(wèn)進(jìn)行了聲明,拒絕Spiders進(jìn)入該目錄及其子目錄。Disallow聲明行還具有通配符功能。例如上例中“Disallow: /cgi-bin/”聲明了拒絕搜索引擎對cgi-bin目錄及其子目錄的訪(fǎng)問(wèn),而“Disallow:/bob”則拒絕搜索引擎對/bob.html和/bob/indes.html的訪(fǎng)問(wèn)(即無(wú)論是名為bob的文件還是名為bob的目錄下的文件都不允許搜索引擎訪(fǎng)問(wèn))。Disallow記錄如果留空,則說(shuō)明該網(wǎng)站的所有部分都向搜索引擎開(kāi)放。
空格 & 注釋
在robots.txt文件中,凡以“#”開(kāi)頭的行,均被視為注解內容,這和UNIX中的慣例是一樣的。但大家需要注意兩個(gè)問(wèn)題:
1) RES標準允許將注解內容放在指示行的末尾,但這種格式并不是所有的Spiders都能夠支持。譬如,并不是所有的Spiders都能夠正確理解“Disallow: bob #comment”這樣一條指令。有的Spiders就會(huì )誤解為Disallow的是“bob#comment”。最好的辦法是使注解自成一行。
2) RES標準允許在一個(gè)指令行的開(kāi)頭存在空格,象“Disallow: bob #comment”,但我們也并不建議大家這么做。
Robots.txt文件的創(chuàng )建:
需要注意的是,應當在UNIX命令行終端模式下創(chuàng )建Robots.txt純文本文件。好的文本編輯器一般都能夠提供UNIX模式功能,或者你的FTP客戶(hù)端軟件也“應該”能夠替你轉換過(guò)來(lái)。如果你試圖用一個(gè)沒(méi)有提供文本編輯模式的HTML編輯器來(lái)生成你的robots.txt純文本文件,那你可就是瞎子打蚊子——白費力氣了。
對RES標準的擴展:
盡管已經(jīng)提出了一些擴展標準,如Allow行或Robot版本控制(例如應該忽略大小寫(xiě)和版本號),但尚未得到RES工作組的正式批準認可。
附錄I. Robots.txt用法舉例:
使用通配符“*”,可設置對所有robot的訪(fǎng)問(wèn)權限。
User-agent: *
Disallow:
表明:允許所有搜索引擎訪(fǎng)問(wèn)網(wǎng)站下的所有內容。
User-agent: *
Disallow: /
表明:禁止所有搜索引擎對網(wǎng)站下所有網(wǎng)頁(yè)的訪(fǎng)問(wèn)。
User-agent: *
Disallow: /cgi-bin/Disallow: /images/
表明:禁止所有搜索引擎進(jìn)入網(wǎng)站的cgi-bin和images目錄及其下所有子目錄。需要注意的是對每一個(gè)目錄必須分開(kāi)聲明。
User-agent: Roverdog
Disallow: /
表明:禁止Roverdog訪(fǎng)問(wèn)網(wǎng)站上的任何文件。
User-agent: Googlebot
Disallow: cheese.htm
表明:禁止Google的Googlebot訪(fǎng)問(wèn)其網(wǎng)站下的cheese.htm文件。
上面介紹了一些簡(jiǎn)單的設置,對于比較復雜的設置,可參看一些大型站點(diǎn)如CNN或Looksmart的robots.txt文件
附錄II. 相關(guān)robots.txt文章參考:
1. Robots.txt常見(jiàn)問(wèn)題解析
2. Robots Meta Tag的使用
3. Robots.txt檢測程序