CNStats логгирует ошибку 404 (попытки открыть страницы, которых нет на сайте). Ошибку 403 (доступ запрещен (бан)) он не логгирует. Возникла необходимость писать в лог 403ю ошибку.
С помощью ErrorDocument в .htaccess создаю свою страницу "403", например так:
Код:
ErrorDocument 403 /403.php
<Files 403.php>
order allow,deny
allow from all
</Files>
В файле 403.php вставляю код CNStats, например такой:
Код:
include_once "/var/www/vhosts/trans-tema.ru/httpdocs/cnstats/cnt.php";
И подгрузку рисунка размером 1х1, например 403.gif (рисунок может быть любым, у меня рисунок 1х1 с прозрачным цветом.
Наконец в файл 403.php вставляю HTML код для подгрузки этого рисунка
Код:
<img border="0" src="/images/403.gif" width="1" height="1">
Как это работает?
Когда пользователю доступ запрещен - ему загружается и показывается страница 403.php (она в лог пишется со всеми признаками той страницы которую пользователь хочет открыть), затем пытается подгрузиться файл 403.gif, но он в .htaccess при ошибке 403 не разрешен к загрузке командой order allow,deny allow from all - поэтому вместо него повторно грузится файл 403.php, при этом он в лог CNStats пишется со всеми признаками файла 403.gif.
Осталось в логе выполнить поиск страницы 403.gif, это и будут пользователи, которым запрещен доступ на сайт.
Проверялось на CNStats STD 3.1