2013-05-10 48 views
0

時,請避免機器人進入www.domain.com/thishash我正在構建一項服務,當用戶通過www.domain.com/格式鏈接時收到通知(郵件) this_is_a_hash。使用此服務器的人可以分享該鏈接不同的地方,如,嘰嘰喳喳,tumblr,Facebook和更多...當鏈接發佈到twitter,facebook

時遇到的主要問題是,一旦鏈路上的任何的這個平臺共享我的服務器上有很多對www.domain.com/this_is_a_hash的請求。這樣做的問題是,每當這些請求中的一個到達我的服務器時,通知就會發送給this_is_a_hash的所有者,當然這不是我想要的。我只是想在真人進入這個資源時收到通知。

我發現了一個談到有關張貼到Twitter當服務器收到請求的大量非常有趣的文章here ...

所以我需要的是避免搜索引擎打出了「資源」 URL。 .. www.mydomain.com/this_is_a_hash

任何想法?我正在使用導軌3.

謝謝!

回答

1

如果您不希望這些網頁被搜索引擎編入索引,您可以使用robots.txt來阻止這些網址。

User-agent: * 
Disallow:/

(這將阻止所有的URL爲所有用戶代理,你可能要添加一個文件夾僅阻止它裏面的網址,或者因爲他們得到建立,你可以動態地添加禁止的網址,但是,一些漫遊器可能會緩存robots.txt一段時間,所以他們可能不會意識到應該阻止一個新的URL)。

當然,它只會阻止那些有禮貌的足以遵循規則的機器人您的robots.txt。

如果您的用戶將複製&粘貼HTML,你可以利用nofollow鏈接關係類型:

<a href="http://example.com/this_is_a_hash" rel="nofollow">cute cat</a> 

但是,這不會是非常有效的,因爲即使其中的一些搜索引擎支持此的鏈接類型still visit the pages

或者,您可能需要JavaScript來點擊鏈接,但這不是很優雅,當然。

但我假設他們只複製&粘貼普通網址,所以這不會起作用。

所以你唯一的機會就是確定它是一個機器人還是人鏈接被點擊後。

您可以檢查用戶代理。您可以分析頁面上的行爲(例如,第一次點擊需要多長時間)。或者,如果對你來說真的很重要,你可以強制用戶輸入驗證碼,以便能夠查看頁面內容。當然,你永遠無法用這種方法捕捉全部機器人。

您可以在頁面上使用分析,如Piwik。他們試圖區分用戶和機器人,以便只有用戶出現在統計數據中。我相信大多數分析工具都提供了一個API,允許爲每次註冊訪問發送郵件。

相關問題