0

我正在构建一项服务,当人们点击格式为 www.domain.com/this_is_a_hash 的链接时,他们会收到通知(邮件)。使用这个服务器的人可以在不同的地方分享这个链接,比如 twitter、tumblr、facebook 等等......

我遇到的主要问题是,一旦在任何这个平台上共享链接,就会向我的服务器发送大量对 www.domain.com/this_is_a_hash 的请求。这样做的问题是,每次其中一个请求到达我的服务器时,都会向 this_is_a_hash 的所有者发送通知,当然这不是我想要的。我只想在真实的人进入此资源时收到通知。

我在这里发现了一篇非常有趣的文章,它讨论了服务器在发布到 Twitter 时收到的大量请求......

所以我需要的是避免搜索引擎点击“资源”网址...... www.mydomain.com/this_is_a_hash

任何想法?我正在使用rails 3。

谢谢!

4

1 回答 1

1

如果您不希望这些页面被搜索引擎索引,您可以使用 robots.txt 来阻止这些 URL。

User-agent: *
Disallow: /

(这将阻止所有用户代理的所有 URL。您可能希望添加一个文件夹以仅阻止其中的那些 URL。或者您可以在创建禁止的 URL 时动态添加它们,但是,某些机器人可能会缓存机器人。 txt 一段时间,因此他们可能无法识别出新的 URL 也应该被阻止。)

当然,它只会阻止那些礼貌地遵守你的 robots.txt 规则的机器人。

如果您的用户要复制和粘贴 HTML,您可以使用nofollow链接关系类型:

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

但是,这不会很有效,因为即使是一些支持这种链接类型的搜索引擎仍然会访问这些页面

或者,您可以要求 JavaScript 能够单击该链接,但这当然不是很优雅。

但我假设他们只复制和粘贴纯 URL,所以这无论如何都行不通。

因此,您唯一的机会就是在单击链接后确定它是机器人还是人类。

您可以检查用户代理。您可以分析页面上的行为(例如第一次点击需要多长时间)。或者,如果它对您来说真的很重要,您可以强制用户输入 CAPTCHA 才能看到页面内容。当然,您永远无法使用这种方法捕获所有机器人。

您可以在页面上使用分析,例如Piwik。他们试图将用户与机器人区分开来,以便只有用户出现在统计数据中。我确信大多数分析工具都提供了一个 API,允许为每次注册访问发送邮件。

于 2013-05-11T16:52:01.757 回答