禁止搜尋引擎收錄的方法(robots.txt)
一、什麼是robots.txt檔案?
搜尋引擎通過一種程式robot(又稱spider),自動通路網際網路上的網頁并擷取網頁資訊。您可以在您的網站中建立一個純文字檔案robots.txt,在這個檔案中聲明該網站中不想被robot通路的部分,這樣,該網站的部分或全部内容就可以不被搜尋引擎收錄了,或者指定搜尋引擎隻收錄指定的内容。
二、robots.txt檔案放在哪裡?
robots.txt檔案應該放在網站根目錄下。舉例來說,當robots通路一個網站(比如http://www.abc.com)時,首先會檢查該網站中是否存在http://www.abc.com/robots.txt這個檔案,如果機器人找到這個檔案,它就會根據這個檔案的内容,來确定它通路權限的範圍。
網站 URL 相應的 robots.txt的 URL
http://www.w3.org/ http://www.w3.org/robots.txt
http://www.w3.org:80/ http://www.w3.org:80/robots.txt
http://www.w3.org:1234/ http://www.w3.org:1234/robots.txt
http://w3.org/ http://w3.org/robots.txt
三、robots.txt檔案的格式
"robots.txt"檔案包含一條或更多的記錄,這些記錄通過空行分開(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示:":"。
在該檔案中可以使用#進行注解,具體使用方法和UNIX中的慣例一樣。該檔案中的記錄通常以一行或多行User-agent開始,後面加上若幹Disallow行,詳細情況如下:
User-agent:
該項的值用于描述搜尋引擎robot的名字,在"robots.txt"檔案中,如果有多條User-agent記錄說明有多個robot會受到該協定的限制,對該檔案來說,至少要有一條User-agent記錄。如果該項的值設為*,則該協定對任何機器人均有效,在"robots.txt"檔案中,"User-agent:*"這樣的記錄隻能有一條。
Disallow :
該項的值用于描述不希望被通路到的一個URL,這個URL可以是一條完整的路徑,也可以是部分的,任何以Disallow開頭的URL均不會被robot通路到。例如"Disallow: /help"對/help.html和/help/index.html都不允許搜尋引擎通路,而"Disallow:/help/"則允許robot通路/help.html,而不能通路/help/index.html。任何一條Disallow記錄為空,說明該網站的所有部分都允許被通路,在"/robots.txt"檔案中,至少要有一Disallow記錄。如果"/robots.txt"是一個空檔案,則對于所有的搜尋引擎robot,該網站都是開放的。
四、robots.txt檔案用法舉例
例1. 禁止所有搜尋引擎通路網站的任何部分
下載下傳該robots.txt檔案 User-agent: *
Disallow: /
例2. 允許所有的robot通路
(或者也可以建一個空檔案 "/robots.txt" file)
User-agent: *
Disallow:
例3. 禁止某個搜尋引擎的通路
User-agent: BadBot
例4. 允許某個搜尋引擎的通路
User-agent: baiduspider
例5. 一個簡單例子
在這個例子中,該網站有三個目錄對搜尋引擎的通路做了限制,即搜尋引擎不會通路這三個目錄。
需要注意的是對每一個目錄必須分開聲明,而不要寫成 "Disallow: /cgi-bin/ /tmp/"。
User-agent:後的* 具有特殊的含義,代表"any robot",是以在該檔案中不能有"Disallow:
/tmp/*" or "Disallow: *.gif"這樣的記錄出現.
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
五、robots.txt檔案參考資料
robots.txt檔案的更具體設定,請參看以下資料:
· 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
在你的首頁中為Web Robot設計路标
Internet越來越酷,WWW的知名度如日中天。在Internet上釋出公司資訊、進行電子商務已經從時髦演化成時尚。作為一個WebMaster,你可能對HTML、Javascript、Java、 ActiveX了如指掌,但你是否知道什麼是WebRobot?你是否知道Web Robot和你所設 計的首頁有什麼關系?
Internet上的流浪漢--- Web Robot
有時你會莫名其妙地發現你的首頁的内容在一個搜尋引擎中被索引,即使你從未與他 們有過任何聯系。其實這正是Web Robot的功勞。WebRobot其實是一些程式,它可以 穿越大量Internet網址的超文本結構,遞歸地檢索網絡站點所有的内容。這些程式有時被叫“蜘蛛(Spider)” , “網上流浪漢(Web Wanderer)”,“網絡蠕蟲(web worms)”或Webcrawler。一些Internet網上知名的搜尋引擎站點(Search Engines)都 有專門的WebRobot程式來完成資訊的采集,例如Lycos,Webcrawler,Altavista等,以及中文搜尋引擎站點例如北極星
,網易,GOYOYO等。WebRobot就象一個不速之客,不管你是否在意,它都會忠于自己主人的職責,任勞任怨、不知疲倦地奔波于網際網路的空間,當然也會光臨你的首頁,檢索首頁内容并生成它所需要的記錄格式。或許有的首頁内容你樂于世人皆知,但有的内容你卻不願被洞察、索引。難道你就隻能任其“橫行”于自己首頁空間,能否指揮和控制WebRobot的行蹤呢?答案當然是肯定的。隻要你閱讀了本篇的下文,就可以象一個交通 警察一樣,布置下一個個路标,告訴WebRobot應該怎麼去檢索你的首頁,哪些可以檢索,哪些不可以通路。其實Web Robot能聽懂你的話不要以為Web Robot是毫無組織,毫無管束地亂跑。很多Web Robot軟體給網絡站點的 管理者或網頁内容制作者提供了兩種方法來限制Web Robot的行蹤:
1. Robots Exclusion Protocol 協定
網絡站點的管理者可以在站點上建立一個專門格式的檔案,來指出站點上的哪一部分 可以被robot通路, 這個檔案放在站點的根目錄下,即robots.txt." target="_blank">http://.../robots.txt.
2. Robots META tag
一個網頁作者可以使用專門的HTML META tag ,來指出某一個網頁是否可以被索 引、分析或連結。這些方法适合于大多數的Web Robot,至于是否在軟體中實施了這些方法,還依賴于 Robot的開發者,并非可以保證對任何Robot都靈驗。如果你迫切需要保護自己内容,則應考慮采用諸如增加密碼等其他保護方法。
使用Robots Exclusion Protocol協定
當Robot通路一個 Web 站點時,比如http://www.sti.net.cn/,它先去檢查檔案robots.txt"target="_blank">http://www.sti.net.cn/robots.txt。如果這個檔案存在,它便會按照這樣的記錄格式去分析:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
以确定它是否應該檢索站點的檔案。這些記錄是專門給Web Robot看的,一般的浏覽者大概永遠不會看到這個檔案,是以千萬不要異想天開地在裡面加入形似 類的HTML語句或是“How do you do? where areyou from?”之類假情假意的問候語。
在一個站點上隻能有一個 "/robots.txt" 檔案,而且檔案名的每個字母要求全部是小寫。在Robot的記錄格式中每一個單獨的"Disallow"行表示你不希望Robot通路的URL, 每個URL必須單獨占一行,不能出現"Disallow: /cgi-bin/ /tmp/"這樣的病句。同時在一個記錄中不能出現空行,這是因為空行是多個記錄分割的标志。User-agent行指出的是Robot或其他代理的名稱。在User-agent行,'*' 表示一個特殊的含義---所有的robot。
下面是幾個robot.txt的例子:
在整個伺服器上拒絕所有的robots:
允許所有的robots通路整個站點:
Disallow:
或者産生一個空的 "/robots.txt" 檔案。
伺服器的部分内容允許所有的robot通路
Disallow: /private/
拒絕某一個專門的robot:
User-agent: BadBot
Disallow: /
隻允許某一個robot光顧:
User-agent: WebCrawler
最後我們給出 http://www.w3.org/站點上的robots.txt:
# For use by search.w3.org
User-agent: W3Crobot/1
Disallow: /Member/ # This is restricted to W3C Members only
Disallow: /member/ # This is restricted to W3C Members only
Disallow: /team/ # This is restricted to W3C Team only
Disallow: /TandS/Member # This is restricted to W3C Members only
Disallow: /TandS/Team # This is restricted to W3C Team only
Disallow: /Project
Disallow: /Systems
Disallow: /Web
Disallow: /Team
使用Robots META tag方式
Robots META tag 允許HTML網頁作者指出某一頁是否可以被索引,或是否可以用來查找更多的連結檔案。目前隻有部分robot實施了這一功能。
Robots META tag的格式為:
象其他的META tag一樣,它應該放在HTML檔案的HEAD區:
...
Robots META tag指令使用逗号隔開,可以使用的指令包括 [NO]INDEX 和[NO]FOLLOW。INDEX指令指出一個索引性robot是否可以對本頁進行索引;FOLLOW 指
令指出robot是否可以跟蹤本頁的連結。預設的情況是INDEX和FOLLOW。例如:一個好的Web 站點管理者應該将robot的管理考慮在内,使robot為自己的首頁服務, 同時又不損害自己網頁的安全。