首页 文章

如何阻止机器人在PHP中递增我的文件下载计数器?

提问于
浏览
12

当用户单击链接以在我的网站上下载文件时,他们会转到this PHP file,这会增加该文件的下载计数器,然后header() - 将它们重定向到实际文件 . 我怀疑机器人正在关注下载链接,因此下载次数不准确 .

  • 如何让机器人知道他们不应该关注链接?

  • 有没有办法检测大多数机器人?

  • 有没有更好的方法来计算文件的下载次数?

4 回答

  • 3

    robots.txt:http://www.robotstxt.org/robotstxt.html

    并非所有机器人都尊重它,但大多数人都这样做 . 如果你真的想阻止通过僵尸程序访问,请将链接指向POST而不是GET . 机器人不会关注POST网址 . (I.E.,使用一个小型表格回发到将您带到相关URL的网站 . )

  • 16

    我认为Godeke的robots.txt答案就足够了 . 如果您绝对无法将计数器放在计数器上,那么我建议您同时使用机器人文件,而不是使用某些common robot user agents来增加点击次数 .

    这两种方式都不完美 . 但两者的混合可能更严格一些 . 如果是我,我可能只是坚持机器人文件,因为它很容易,可能是最有效的解决方案 .

  • 4

    Godeke是对的,robots.txt是阻止机器人下载的第一件事 .

    关于计数,这实际上是一个网络分析问题 . 您是不是保留了www访问日志并通过像WebalizerAWStats这样的分析程序(或像Webtrends或Urchin这样的花哨替代品)运行它们?对我而言's the way to go for collecting this sort of info, because it'很容易并且有's no PHP, redirect or other performance hit when the user' s下载文件 . 无论如何你还是要保持 . (并且 grep -c 将为您提供特定文件或通配符模式的快速'n'脏计数 . )

    您可以将统计软件配置为忽略机器人,特定用户代理和其他条件的命中(如果您稍后更改条件,则只需重新处理旧的日志数据) . 当然,这确实要求你拥有所有旧日志,所以如果你用 logrotate 之类的东西抛弃它们,你将不得不在没有任何历史数据的情况下开始 .

  • 0

    您还可以使用http://www.bad-behavior.ioerror.us/检测不符合robots.txt的恶意机器人 .

相关问题