2011-09-27 218 views
1

我們在我們的網站上實施了新的訪問次數功能,當我們的網站上的公司配置文件被訪問時,在我們的視圖數據庫中保存了一行。這是通過使用服務器端「/ addVisit」函數完成的,每次加載頁面(公司配置文件)時都會運行該函數。不幸的是,這意味着我們昨晚有400多次來自Googlebot的訪問。防止Googlebot運行功能

由於我們希望Google爲這些網頁編制索引,因此我們無法使用robots.txt在這些網頁上排除Googlebot。

我也讀過使用jQuery運行此函數$ .get()不會阻止Googlebot。

是唯一的工作解決方案是排除已知的機器人IP或有選擇嗎?

或者可能使用帶有robots.txt的jQuery $ .get(/ addVisit)exclude/addVisit會阻止googlebot和其他機器人運行此函數?

+0

下面的兩個答案似乎都有效。我決定使用jQuery $ .post(/ addVisit)+ robots.txt disallow/addVisit。我相信使用jQuery或使用客戶端都有好處。對我來說,使用robots.txt來告訴機器人不要遵循鏈接而不是解析出機器人用戶代理是更正確的。 – Ryan

回答

1

創建robots.txt文件在您的網站的根目錄下,並添加:

User-agent: Google 
Disallow: /addVisit 

您還可以使用*代替Google,使/addvisit沒有得到在任何引擎索引。搜索引擎開始總是尋找/robots.txt。如果這個文件存在,他們解析內容並且尊重應用的限制。

欲瞭解更多信息,請參閱http://www.robotstxt.org/robotstxt.html

+0

沒錯,但是這隻會在我使用jQuery $ .get(/ addVisit)時正常工作? – Ryan

+0

這隻會打破索引機器人。普通客戶端和服務器之間的流量不受任何影響(請閱讀我的答案中對robots.txt的解釋)。 –

+0

正確。我的問題不是與robots.txt,但確保jQuery $ .post語句不會運行。我使用的解決方案是在jQuery中使用$ .post來訪問/添加,然後使用User-agent使用robots.txt:* Disallow:/ visits/add – Ryan

1

如果您通過服務器端HTTP請求處理計數,則可以過濾包含單詞「Googlebot」的任何用戶代理。快速Google搜索向我展示了幾個Googlebot用戶代理示例:

Googlebot/2.1 (+http://www.google.com/bot.html) 
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 
+0

此列表包含許多機器人使用的用戶代理:http: //www.smart-it-consulting.com/internet/google/googlebot-spoofer/ – Ryan

+0

這正是我找到的頁面:)這將是值得也許檢查,看看用戶代理是否匹配任何已知的機器人,如果所以,不要增加命中數。 – Connell

+0

不錯的解決方案。雖然看起來好像這意味着我們的服務器上處理更多的工作,而不是使用jQuery +機器人實際阻止機器人運行該功能。 – Ryan