2013-05-10 74 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,允许为每次注册访问发送邮件。

相关问题