Как остановить ботов от наращивания счетчика загрузки файлов в PHP?

Когда пользователь нажимает ссылку для загрузки файла на моем веб-сайте, он переходит к этому файлу PHP, который увеличивает счетчик загрузки для этого файла, а затем header () – перенаправляет их в фактический файл. Я подозреваю, что боты следуют за ссылкой на скачивание, однако количество загрузок неточно.

  • Как сообщить ботам, что они не должны следовать ссылке?
  • Есть ли способ обнаружить большинство ботов?
  • Есть ли лучший способ подсчитать количество загружаемых файлов?

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

Не все боты уважают это, но большинство это делает. Если вы действительно хотите предотвратить доступ через ботов, сделайте ссылку на него POST вместо GET. Боты не будут следовать URL-адресам POST. (IE, используйте небольшую форму, которая отправляется обратно на сайт, на котором вы попадете на указанный URL.)

Я думаю, что ответ Godeke robots.txt будет достаточным. Если у вас абсолютно нет ботов на вашем счетчике, я бы рекомендовал использовать файл robots вместе с тем, чтобы не увеличивать количество кликов с помощью некоторых обычных агентов робота .

Ни один из них не идеален, но смесь двух, вероятно, немного более строгая. Если это был я, я бы, вероятно, просто придерживался файла robots, поскольку это легко и, вероятно, самое эффективное решение.

Godeke прав, robots.txt – первое, что нужно сделать, чтобы боты не загружались.

Что касается подсчета, это действительно проблема веб-аналитики. Не сохраняете ли вы свои журналы доступа в WWW и запускаете их через аналитическую программу, такую ​​как Webalizer или AWStats (или причудливые альтернативы, такие как Webtrends или Urchin)? Для меня это способ собирать такую ​​информацию, потому что это легко, и при загрузке файла пользователь не загружает PHP, перенаправление или другую производительность. Вы просто используете журналы Apache, которые вы все равно сохраняете. (И grep -c даст вам быстрый «n» грязный счет для определенного файла или шаблона подстановочных знаков.)

Вы можете настроить программное обеспечение статистики, чтобы игнорировать обращения ботов или конкретных пользовательских агентов и других критериев (и, если вы измените свои критерии позже, вы просто переработаете старые данные журнала). Конечно, это требует, чтобы у вас были все ваши старые журналы, поэтому, если вы бросали их с чем-то вроде logrotate вам придется начинать без каких-либо исторических данных.

Вы также можете обнаружить вредоносные боты, которые не будут уважать файл robots.txt, используя http://www.bad-behavior.ioerror.us/ .