1. robots.txt只能存放于網站的根目錄下,置于除此之外的任何地方均不會被Spider發現。
2. 每個網站,或每個域名(包括子域名),只能有一個robots.txt。
3. 文件名“robots.txt”為小寫字母,其他如Robots.txt或robots.Txt是不正確的,命名錯誤將會被Spider忽略。
robots.txt語法。最簡單的 robots.txt 文件使用兩條規則:
User-Agent: 適用下列規則的漫游器
Disallow: 要攔截的網頁
這兩行被視為文件中的一個條目。您可根據需要包含任意多個條目。您可在一個條目中包含多個 Disallow 行和多個 User-Agent。
User-agent:該項的值用于描述搜索引擎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、/helpabc.html、/help/index.html,而"Disallow:/help/"則允許robot訪問/help.html、/helpabc.html,不能訪問/help/index.html。
"Disallow:"說明允許robot訪問該網站的所有url,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"不存在或者為空文件,則對于所有的搜索引擎robot,該網站都是開放的。
• 要攔截整個網站,請使用正斜扛。
Disallow:/
• 要攔截目錄及其中的所有內容,請在目錄名后添加正斜扛。
Disallow:/private_directory/
• 要攔截網頁,請列出該網頁。
Disallow:/private_file.html
網址區分大小寫。例如:Disallow:/private_file.html
會攔截 private_file.html,
但不會攔截 Private_File.html。
Google、百度和雅虎的蜘蛛還支持Allow語法
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。
使用 * 匹配字符序列
您可使用星號 (*) 來匹配字符序列。例如,要攔截對所有以"專用"開頭的子目錄的訪問,可使用下列條目:
User-Agent:Googlebot
Disallow:/專用*/
要攔截對所有包含問號 (?) 的網址的訪問,可使用下列條目:
User-agent:*
Disallow:/*?
使用 $ 匹配網址的結束字符
您可使用 $ 字符指定與網址的結束字符進行匹配。例如,要攔截以 .asp 結尾的網址,可使用下列條目:
User-Agent:Googlebot
Disallow:/*.asp$
您可將此模式匹配與 Allow 指令配合使用。例如,如果 ? 表示一個會話 ID,您可排除所有包含該 ID 的網址,確保 搜索引擎蜘蛛不會抓取重復的網頁。但是,以 ? 結尾的網址可能是您要包含的網頁版本。在此情況下,可對 robots.txt 文件進行如下設置:
User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/ *? 一行將攔截包含 ? 的網址(具體而言,它將攔截所有以您的域名開頭、后接任意字符串,然后是問號 (?),而后又是任意字符串的網址)。
Allow: /*?$ 一行將允許包含任何以 ? 結尾的網址(具體而言,它將允許包含所有以您的域名開頭、后接任意字符串,然后是問號 (?),問號之后沒有任何字符的網址)。
URL匹配舉例
Allow或Disallow的值 | URL | 匹配結果 |
/tmp | /tmp | yes |
/tmp | /tmp.html | yes |
/tmp | /tmp/a.html | yes |
/tmp/ | /tmp | no |
/tmp/ | /tmphoho | no |
/tmp/ | /tmp/a.html | yes |
/Hello* | /Hello.html | yes |
/He*lo | /Hello,lolo | yes |
/Heap*lo | /Hello,lolo | no |
html$ | /tmpa.html | yes |
/a.html$ | /a.html | yes |
htm$ | /a.html | no |
robots.txt文件用法舉例
例1. 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
例2. 允許所有的robot訪問
(或者也可以建一個空文件 "/robots.txt")
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
例3. 僅禁止baiduspider訪問您的網站
User-agent: baiduspider
Disallow: /
例4. 僅允許baiduspider訪問您的網站
User-agent: baiduspider
Disallow:
User-agent: *
Disallow: /
例5.禁止spider訪問特定目錄
在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即robot不會訪問這三個目錄。需要注意的是對每一個目錄必須分開聲明,而不能寫成 "Disallow: /cgi-bin/ /tmp/"。
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: /*?*