2008-11-29 73 views

回答

4

我應該更改或編輯我的robots.txt或更改內容嗎?

取決於機器人。一些機器人會盡職盡責地忽略robots.txt。 18個月前,我們遇到了類似的問題,因爲我們的客戶正在購買Soooo許多廣告。 Google AD bots將(如文檔所述)忽略通配符(*)排除,但會聽取明確的忽略。

請記住,榮譽robots.txt的機器人將不會抓取您的網站。如果您希望他們訪問您的數據以進行索引,這是不可取的。

更好的解決方案是限制或提供靜態內容給機器人。

不知道這是否好,因爲它們是索引或什麼?

他們可能是索引/刮/偷。一切都一樣。我想你想要的是基於UserAgents限制他們的http請求處理。如何做到這一點取決於您的Web服務器和應用程序容器。

正如其他答案中所建議的那樣,如果bot是惡意的,那麼您需要找到UserAgent模式併發送403個禁止。或者,如果惡意機器人動態更改用戶代理字符串,則您有兩個更多選項:

  • 白名單UserAgent - 例如,創建一個只接受某些用戶代理的用戶代理過濾器。這是非常不完美的。
  • IP禁止 - http頭將包含源IP。或者,如果你得到DOS(拒絕服務攻擊),那麼你有更大的問題
+0

得到'不同意項目1谷歌服從robots.txt很好。 – UnkwnTech 2008-11-29 05:11:14

4

我真的不認爲更改robots.txt會幫助,因爲只有GOOD機器人遵守它。所有其他人都會忽略它並根據需要解析您的內容。就我個人而言,我使用http://www.codeplex.com/urlrewriter通過發現禁止消息來回復不良機器人。

3

垃圾郵件機器人不關心robots.txt。你可以用mod_security(這本身就是一個很酷的Apache插件)阻止它們。或者你可以忽略它們。

2

您可能需要使用.htaccess否決某些機器人與您的日誌擰緊。 在這裏看到:http://spamhuntress.com/2006/02/13/another-hungry-java-bot/

我有很多的Java機器人的爬行我的網站,加入

SetEnvIfNoCase的User-Agent ^的Java/1。 javabot = yes
SetEnvIfNoCase User-Agent^Java1。 javabot = yes
拒絕來自env = javabot

使它們停止。現在他們只能得到403次,就是這樣:)

2

我曾經爲一個有多次「價格比較」機器人的客戶工作。問題在於我們的後端資源非常稀缺,每筆交易都需要花費金錢。

在試圖抵抗這些一段時間後,但機器人只是不斷改變其可識別的特徵。我們結束了以下策略:

對於服務器上的每個會話,我們確定用戶是否在任何點擊過快。經過給定數量的重複,我們將「isRobot」標誌設置爲true,並通過添加睡眠來簡化該會話內的響應速度。我們沒有以任何方式告訴用戶,因爲他在這種情況下剛剛開始新的會話。

相關問題