Как остановить ботов от увеличения счетчика загрузки файлов в PHP? - PullRequest
12 голосов
/ 25 октября 2008

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

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

Ответы [ 4 ]

16 голосов
/ 25 октября 2008

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

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

4 голосов
/ 25 октября 2008

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

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

3 голосов
/ 25 октября 2008

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

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

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

0 голосов
/ 25 октября 2008

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

...