Собственный лог посещений поисковых роботов на PHP и .htaccess
Давай опустим момент наличия соответствующих логов и прикинемся, что их нет.
А что есть? Правильно, в нашем распоряжении всегда есть robots.txt и почти всегда .htaccess. Ну, и будем надеяться звезды сошлись так, что есть и то, и другое.
Начнем конечно же с .htaccess:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^robots.txt$ /robots.php?%{REQUEST_URI}
Что здесь нужно прокомментировать даже не знаю. Но все же:
[строка 1] запуск самого модуля mod_rewrite;
[строка 2] ограничение действия правил для отдельного каталога;
[строка 3] базовый URL;
[строка 4] правило, которое перенаправит роботов на сценарий http://example.com/robots.php?...
А вот и сам сценариц:
<?php
// сюда мы складываем информацию
$logFile = 'spiders.log';
// здесь заголовок Host
$remoteHost = $_SERVER['HTTP_HOST'];
// здесь IP клиента
$remoteAddr = $_SERVER['REMOTE_ADDR'];
// заголовок User-Agent
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// откуда мы пришли?
$referer = $_SERVER['HTTP_REFERER'];
// что мы здесь забыли?
$documentName = $_SERVER['QUERY_STRING'];
// когда?
$requestTime = time();
// вполне обыяный robots.txt
$fp = fopen('robots.txt', 'r'); // чтение
$robotsRules = '';
while (!feof($fp)) {
$robotsRules = fgets($fp);
}
fclose($fp);
header('Content-type: text/plain'); // обычный текст
echo $robotsRules; // отдаем
$fp = fopen($logFile, 'a'); // дозапись
$statString = fprintf($fp, "%d/%s [%s] [%s] [%s] [%s] [%s]",
$requestTime,
date("d-m-Y H:i:s"),
$remoteAddr,
$userAgent,
$remoteHost,
$referer,
$documentName);
fclose($fp);
?>
Статьи с похожими тегами ↓
Работа в Киеве, работа в Москве: менеджер, программист, юрист. Горячие вакансии. — Безработных.Нет
Салаты, дессерты, торты, рыбные, мясные, блюда из овощей, птицы, рецепты блюд

Добавить комментарий