2009-09-29 50 views
7

如何禁止所有動態URL中的robots.txt如何禁止所有動態網址的robots.txt

Disallow: /?q=admin/ 
Disallow: /?q=aggregator/ 
Disallow: /?q=comment/reply/ 
Disallow: /?q=contact/ 
Disallow: /?q=logout/ 
Disallow: /?q=node/add/ 
Disallow: /?q=search/ 
Disallow: /?q=user/password/ 
Disallow: /?q=user/register/ 
Disallow: /?q=user/login/ 

我希望禁止與/ Q =

+0

根據[此](http://smackdown.blogsblogsblogs.com/2008/05/23/googlebot-creates-pages-instead-of-simply-indexing-them-new-form-crawling-algo-goes -bad /),禁止搜索頁面可能是一個非常好的主意。所以這個問題是非常相關的,不應該被關閉。 – 2015-04-14 13:12:43

回答

11

的回答你的問題是使用

Disallow: /?q= 

上的robots.txt最好的(當前訪問)來源我能找到的是Wikipedia。 (據推測來源是http://www.robotstxt.org,但現在網站已關閉。)

根據維基百科頁面,標準定義了兩個字段; UserAgent:和Disallow :. Disallow:字段不允許顯式通配符,但每個「不允許」路徑實際上是一個路徑前綴;即匹配以指定值開始的任何路徑。

的允許:字段是非標準擴展,以及在不允許顯式通配符任何支持將是一個非標準擴展。如果你使用這些,你沒有權利期望一個(合法的)網絡爬蟲能夠理解他們。

這不是爬行者是「聰明」還是「愚蠢」的問題:這完全是關於標準兼容性和互操作性的問題。例如,任何在「Disallow:」中使用顯式通配符「聰明」的東西的網絡爬蟲對於(假設的)robots.txt文件來說都是不利的,其中這些字符旨在從字面上解釋。

+0

@stephen感謝您的詳細解答 – pmarreddy 2009-09-30 08:03:26

+0

谷歌對於理解robotos.txt的一個很高的結果是建議正則表達式起作用 - 我沒有發現它們能夠使用正則表達式。 – landed 2016-10-12 13:38:57

2

正如保羅說了開頭的所有事情很多robots.txt解釋器不太亮,並且可能無法解釋路徑中的通配符,因爲您打算使用它們。

這就是說,一些爬蟲嘗試跳過自己的動態網頁,擔心他們可能會陷入無限循環上具有不同的URL鏈接。我假設你問這個問題是因爲你面對一個勇於嘗試訪問這些動態路徑的勇敢的爬蟲。

如果你有具體的爬蟲的問題,你可以嘗試以調查履帶具體是如何工作的通過搜索其robots.txt的能力,並指定特定的robots.txt節吧。

如果您通常只想禁止對動態頁面進行此類訪問,則可能需要重新考慮robots.txt設計。

通常,動態參數處理「頁面」位於特定目錄或特定目錄集下。這就是爲什麼簡單地Disallow:/ cgi-bin或/ app並且用它來完成通常很簡單的原因。

在你的情況下,你似乎已經將根映射到了一個處理參數的區域。您可能要逆轉的robots.txt的邏輯和這樣說:

User-agent: * 
Allow: /index.html 
Allow: /offices 
Allow: /static 
Disallow:/

這樣你的允許名單將通過特別添加的數據抓取工具都不能索引覆蓋你不允許名單。請注意,並非所有抓取工具的創建都是平等的,您可能需要稍後改進該robots.txt,爲任何仍然行爲不當的抓取工具添加特定部分。

+1

@Grookoo:「允許:」是非標準的。忽視它的履帶不是行爲不端;它只是符合robots.txt規範。 – 2009-09-30 00:00:19

相關問題