詳細講解robots txt寫法

2021-05-22 20:43:06 字數 4711 閱讀 4345

什麼是robots.txt檔案呢?

搜尋引擎使用spider程式自動訪問網際網路上的網頁並獲取網頁資訊。spider在訪問乙個**時,會首先會檢查該**的根域下是否有乙個叫做robots.txt的純文字檔案。您可以在您的**中建立乙個純文字檔案robots.txt,在檔案中宣告該**中不想被robot訪問的部分或者指定搜尋引擎只收錄特定的部分。

請注意,僅當您的**包含不希望被搜尋引擎收錄的內容時,才需要使用robots.txt檔案。如果您希望搜尋引擎收錄**上所有內容,請勿建立robots.txt檔案或者建立乙個內容為空的robots.txt檔案。

robots.txt放置位置

放在根目錄下.舉列來說當spider訪問乙個**(比如http://www.seohn.cn)時,首先會檢查該**中是否存在http://www.seohn.cn/robots.txt這個檔案,如果機械人找到這個檔案,它就會根據這個檔案的內容,來確定它訪問許可權的範圍。

robots相關語法

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:/seo"禁止robot訪問/seo.html、/seoabc.html、/seoindex.html,而"disallow:/seo/"則允許robot訪問/seo.html、/seoabc.html,不能訪問/seop/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。

下面介紹下使用"*"和"$":

使用統配符和模糊匹配,筆者只了解baidu是支援得使用萬用字元"*"和"$"來模糊匹配url。

"$" 匹配行結束符。

"*" 匹配0或多個任意字元。

禁止所有搜尋引擎訪問**的任何部分

user-agent: *

disallow: /

禁止所有搜尋引擎訪問**的幾個部分(下例中的01、02、03目錄)

user-agent: *

disallow: /01/

disallow: /02/

disallow: /03/

禁止某個搜尋引擎的訪問(下例中的badbot)

user-agent: badbot

disallow: /

只允許某個搜尋引擎的訪問(下例中的crawler)

user-agent: crawler

disallow:

user-agent: *

disallow: /

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訪問您的**

例4. 僅允許baiduspider訪問您的**

例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: /*?*

robots meta標籤的寫法:

robots meta標籤中沒有大小寫之分,name=」robots」表示所有的搜尋引擎,可以針對某個具體搜尋引擎寫為name=」baiduspider」。 content部分有四個指令選項:index、noindex、follow、nofollow,指令間以「,」分隔。

index 指令告訴搜尋機械人抓取該頁面;

robots meta標籤的預設值是index和follow,只有inktomi除外,對於它,預設值是index,nofollow。

這樣,一共有四種組合:

<meta name="robots" content="index,follow">

<meta name="robots" content="noindex,follow">

<meta name="robots" content="index,nofollow">

<meta name="robots" content="noindex,nofollow">

其中<meta name="robots" content="index,follow">可以寫成<meta name="robots" content="all">;

<meta name="robots" content="noindex,nofollow">可以寫成<meta name="robots" content="none">

目前看來,絕大多數的搜尋引擎機械人都遵守robots.txt的規則,而對於robots meta標籤,目前支援的並不多,但是正在逐漸增加,如著名搜尋引擎google就完全支援,而且google還增加了乙個指令「archive」,可以限制google是否保留網頁快照。例如:

<meta name="googlebot" content="index,follow,noarchive">

表示抓取該站點中頁面並沿著頁面中鏈結抓取,但是不在goolge上保留該頁面的網頁快照。

robots txt詳細介紹

robots.txt基本介紹 當乙個搜尋機械人 有的叫搜尋蜘蛛 訪問乙個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜尋機械人就會按照該檔案中的內容來確定訪問的範圍 如果該檔案不存在,那麼搜尋機械人就沿著鏈結抓取。另外,robots.txt必須放置在乙個站點的根目錄下,...

UITableView 詳細講解

建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...

UITableView 詳細講解

建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...