行業(yè)動態(tài)
robots.txt用法
發(fā)布日期:2010-03-23 閱讀次數(shù):4061 字體大小:

1. robots.txt只能存放于網(wǎng)站的根目錄下,置于除此之外的任何地方均不會被Spider發(fā)現(xiàn)。 

2. 每個網(wǎng)站,或每個域名(包括子域名),只能有一個robots.txt。 

3. 文件名“robots.txt”為小寫字母,其他如Robots.txt或robots.Txt是不正確的,命名錯誤將會被Spider忽略。
 
robots.txt語法。最簡單的 robots.txt 文件使用兩條規(guī)則:
   User-Agent: 適用下列規(guī)則的漫游器
   Disallow: 要攔截的網(wǎng)頁 

這兩行被視為文件中的一個條目。您可根據(jù)需要包含任意多個條目。您可在一個條目中包含多個 Disallow 行和多個 User-Agent。

User-agent:該項(xiàng)的值用于描述搜索引擎robot的名字。

在"robots.txt"文件中,如果有多條User-agent記錄說明有多個robot會受到"robots.txt"的限制,對該文件來說,至少要有一條User-agent記錄。如果該項(xiàng)的值設(shè)為*,則對任何robot均有效,在"robots.txt"文件中,"User-agent:*"這樣的記錄只能有一條。

如果在"robots.txt"文件中,加入"User-agent:SomeBot"和若干Disallow、Allow行,那么名為"SomeBot"只受到"User-agent:SomeBot"后面的Disallow和Allow行的限制。

Disallow:該項(xiàng)的值用于描述不希望被訪問的一組URL。

這個值可以是一條完整的路徑,也可以是路徑的非空前綴,以Disallow項(xiàng)的值開頭的URL不會被robot訪問。例如"Disallow:/help"禁止robot訪問/help.html、/helpabc.html、/help/index.html,而"Disallow:/help/"則允許robot訪問/help.html、/helpabc.html,不能訪問/help/index.html。

"Disallow:"說明允許robot訪問該網(wǎng)站的所有url,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"不存在或者為空文件,則對于所有的搜索引擎robot,該網(wǎng)站都是開放的。

• 要攔截整個網(wǎng)站,請使用正斜扛。
Disallow:/

• 要攔截目錄及其中的所有內(nèi)容,請在目錄名后添加正斜扛。
Disallow:/private_directory/

• 要攔截網(wǎng)頁,請列出該網(wǎng)頁。
Disallow:/private_file.html

網(wǎng)址區(qū)分大小寫。例如:Disallow:/private_file.html
會攔截 private_file.html,
但不會攔截 Private_File.html

Google、百度和雅虎的蜘蛛還支持Allow語法

Allow:該項(xiàng)的值用于描述希望被訪問的一組URL。

與Disallow項(xiàng)相似,這個值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項(xiàng)的值開頭的URL是允許robot訪問的。例如"Allow:/hibaidu"允許robot訪問/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一個網(wǎng)站的所有URL默認(rèn)是Allow的,所以Allow通常與Disallow搭配使用,實(shí)現(xiàn)允許訪問一部分網(wǎng)頁同時禁止訪問其它所有URL的功能。

注意:Disallow與Allow行的順序是有意義的,robot會根據(jù)第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。

使用 * 匹配字符序列

您可使用星號 (*) 來匹配字符序列。例如,要攔截對所有以"專用"開頭的子目錄的訪問,可使用下列條目:
User-Agent:Googlebot
Disallow:/專用*/

要攔截對所有包含問號 (?) 的網(wǎng)址的訪問,可使用下列條目:
User-agent:*
Disallow:/*?

使用 $ 匹配網(wǎng)址的結(jié)束字符

您可使用 $ 字符指定與網(wǎng)址的結(jié)束字符進(jìn)行匹配。例如,要攔截以 .asp 結(jié)尾的網(wǎng)址,可使用下列條目:
User-Agent:Googlebot
Disallow:/*.asp$

您可將此模式匹配與 Allow 指令配合使用。例如,如果 ? 表示一個會話 ID,您可排除所有包含該 ID 的網(wǎng)址,確保 搜索引擎蜘蛛不會抓取重復(fù)的網(wǎng)頁。但是,以 ? 結(jié)尾的網(wǎng)址可能是您要包含的網(wǎng)頁版本。在此情況下,可對 robots.txt 文件進(jìn)行如下設(shè)置:

User-agent:*
Allow:/*?$
Disallow:/*?

Disallow:/ *? 一行將攔截包含 ? 的網(wǎng)址(具體而言,它將攔截所有以您的域名開頭、后接任意字符串,然后是問號 (?),而后又是任意字符串的網(wǎng)址)。

Allow: /*?$ 一行將允許包含任何以 ? 結(jié)尾的網(wǎng)址(具體而言,它將允許包含所有以您的域名開頭、后接任意字符串,然后是問號 (?),問號之后沒有任何字符的網(wǎng)址)。
 
URL匹配舉例 

Allow或Disallow的值 URL 匹配結(jié)果
/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. 禁止所有搜索引擎訪問網(wǎng)站的任何部分
User-agent: *
Disallow: /

例2. 允許所有的robot訪問

(或者也可以建一個空文件 "/robots.txt") 

User-agent: *
Disallow: 

或者

User-agent: *
Allow: / 

例3. 僅禁止baiduspider訪問您的網(wǎng)站 

User-agent: baiduspider
Disallow: /

例4. 僅允許baiduspider訪問您的網(wǎng)站 

User-agent: baiduspider
Disallow:

User-agent: *
Disallow: /

例5.禁止spider訪問特定目錄

在這個例子中,該網(wǎng)站有三個目錄對搜索引擎的訪問做了限制,即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. 禁止訪問網(wǎng)站中所有的動態(tài)頁面
 User-agent: *
Disallow: /*?*