Когда пользователь нажимает ссылку для загрузки файла на моем веб-сайте, он переходит к этому файлу 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/ .