什麼是robots.txt?html
搜索引擎使用spider程序自動訪問互聯網上的網頁並獲取網頁信息。spider在訪問一個網站時,會首先會檢查該網站的根域下是否有一個叫作robots.txt的純文本文件。您能夠在您的網站中建立一個純文本文件robots.txt,在文件中聲明該網站中不想被robot訪問的部分或者指定搜索引擎只收錄特定的部分。ide
請注意,僅當您的網站包含不但願被搜索引擎收錄的內容時,才須要使用robots.txt文件。若是您但願搜索引擎收錄網站上全部內容,請勿創建robots.txt文件或者建立一個內容爲空的robots.txt文件。網站
robots.txt 放置位置搜索引擎
robots.txt文件應該放置在網站根目錄下。舉例來講,當spider訪問一個網站(好比 http://www.abc.com)時,首先會檢查該網站中是否存在http://www.abc.com/robots.txt這個文件,若是 Spider找到這個文件,它就會根據這個文件的內容,來肯定它訪問權限的範圍。url
robots.txt 格式spa
文件包含一條或更多的記錄,這些記錄經過空行分開(以CR,CR/NL, or NL做爲結束符),每一條記錄的格式以下所示:」:」。在該文件中可使用#進行註解。該文件中的記錄一般以一行或多行User-agent開始,後面加上若干Disallow和Allow行,詳細狀況以下。orm
User-agent:htm
該項的值用於描述搜索引擎robot的名字。在」robots.txt」文件中,若是有多條User-agent記錄說明有多個robot會受到」robots.txt」的限制,對該文件來講,至少要有一條User-agent記錄。 若是該項的值設爲*,則對任何robot均有效,在」robots.txt」文件中,」User-agent:*」這樣的記錄只能有一條。若是在」robots.txt」文件中,加入」User- agent:SomeBot」和若干Disallow、Allow行,那麼名爲」SomeBot」只受到」User-agent:SomeBot」後面的 Disallow和Allow行的限制。 Disallow: 該項的值用於描述不但願被訪問的一組URL,這個值能夠是一條完整的路徑,也能夠是路徑的非空前綴,以Disallow項的值開頭的URL不會被robot訪問。例 如」Disallow: /help」禁止robot訪問/help*.html、/help/index.html, 而」Disallow: /help/」則容許robot訪問/help*.html,不能訪問/help/index.html。索引
"Disallow:"說明容許robot訪問該網站的全部url,在」/robots.txt」文件中,至少要有一條Disallow記錄。若是」/robots.txt」不存在或者爲空文件,則對於全部的搜索引擎robot,該網站都是開放的。圖片
Allow:
該項的值用於描述但願被訪問的一組URL,與Disallow項類似,這個值能夠是一條完整的路徑,也能夠是路徑的前綴,以Allow項的值開頭的URL是容許robot訪問的。例如」Allow:/hibaidu」容許robot訪問/hibaidu.htm、/hibaiducom.html、 /hibaidu/com.html。一個網站的全部URL默認是Allow的,因此Allow一般與Disallow搭配使用,實現容許訪問一部分網頁同時禁止訪問其它全部URL的功能。
須要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的 Allow或Disallow行肯定是否訪問某個URL。
使用」*」和」$」: Baiduspider 支持使用通配符」*」和」$」來模糊匹配url。 「$」 匹配行結束符。 「*」 匹配0或多個任意字符。
robots.txt文件用法舉例:
1. 容許全部的robot訪問
User-agent: * Allow: / 或者 User-agent: * Disallow:
2. 禁止全部搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
3. 僅禁止Baiduspider訪問您的網站
User-agent: Baiduspider
Disallow: /
4. 僅容許Baiduspider訪問您的網站
User-agent: Baiduspider
Disallow:
5. 禁止spider訪問特定目錄
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
6. 容許訪問特定目錄中的部分url
User-agent: *
Allow: /cgi-bin/see
Allow: /tmp/hi
Allow: /~joe/look
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
7. 使用」*」限制訪問url
禁止訪問/cgi-bin/目錄下的全部以」.htm」爲後綴的URL(包含子目錄)。
User-agent: *
Disallow: /cgi-bin/*.htm
8. 使用」$」限制訪問url
僅容許訪問以」.htm」爲後綴的URL。
User-agent: *
Allow: .htm$
Disallow: /
例9. 禁止訪問網站中全部的動態頁面
User-agent: *
Disallow: /*?*
10. 禁止Baiduspider抓取網站上全部圖片
僅容許抓取網頁,禁止抓取任何圖片。
User-agent: Baiduspider
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
11. 僅容許Baiduspider抓取網頁和.gif格式圖片
容許抓取網頁和gif格式圖片,不容許抓取其餘格式圖片
User-agent: Baiduspider
Allow: .gif$
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .png$
Disallow: .bmp$
12. 僅禁止Baiduspider抓取.jpg格式圖片
User-agent: Baiduspider
Disallow: .jpg$
注意:robots.txt是有分大小寫的,默認文件名全小寫,規則裏面要注意區分大小寫,好比禁止http://lbicc.com/Abc.html,在規則裏寫成abc.html的話那就沒效果了,只會禁止abc.html,Abc.html仍是有效。