当用户点击链接以在我的网站上下载文件时,他们会转到this PHP file,这会增加该文件的下载计数器,然后标题() - 将它们重定向到实际文件。我怀疑机器人正在关注下载链接,因此下载次数不准确。
答案 0 :(得分:16)
robots.txt:http://www.robotstxt.org/robotstxt.html
并非所有机器人都尊重它,但大多数人都这样做。如果你真的想阻止通过僵尸程序访问,请将链接指向POST而不是GET。机器人不会关注POST网址。 (例如,使用一个小型表格回发到将您带到相关URL的网站。)
答案 1 :(得分:4)
我认为Godeke的robots.txt答案就足够了。如果您绝对无法将计数器放在计数器上,那么我建议您同时使用机器人文件,而不是使用common robot user agents增加点击次数。
两种方式都不完美。但两者的混合可能更严格一些。如果是我,我可能只是坚持机器人文件,因为它很容易,可能是最有效的解决方案。
答案 2 :(得分:3)
Godeke是对的,robots.txt是阻止机器人下载的第一件事。
关于计数,这实际上是一个网络分析问题。您是否保留了www访问日志,并通过Webalizer或AWStats等分析程序(或Webtrends或Urchin等花哨的替代方案)运行它们?对我而言,这是收集此类信息的方法,因为它很容易,并且在用户下载文件时没有PHP,重定向或其他性能损失。你只是使用你正在保留的Apache日志。 (而grep -c
将为您提供特定文件或通配符模式的快速'n'脏计数。)
您可以将统计软件配置为忽略机器人,特定用户代理和其他条件的命中(如果您稍后更改条件,则只需重新处理旧的日志数据)。当然,这确实要求你拥有所有旧日志,所以如果你用logrotate
之类的东西抛弃它们,你将不得不在没有任何历史数据的情况下开始。
答案 3 :(得分:0)
您还可以使用http://www.bad-behavior.ioerror.us/检测不符合robots.txt的恶意机器人。