Главная » Статьи » Мои статьи

Блокировка роботов в Apache Web-server


Блокировка роботов в Apache Web-server

Нетрудно заблокировать надоедливые программы веб-пауки (также называемые роботами)запрашивающие страницы какого-либо веб-сайта.
Для этого можно использовать файл /robots.txt, содержащий записи протокола исключения роботов (Robot Exclusion Protocol),
но как правило это не всё, что читает такой робот.
Пример решения может быть таким:


  RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot.*
  RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.[8?9]$
  RewriteRule ^/not/to/be/indexed/by/robots/.+ - [F]

 Это правило содержит два условия:
Если (HTTP_USER_AGENT робота содержит шаблон "NameOfBadRobot” ) и
(REMOTE_ADDR удалённый адрес запрашиваемого хоста от 123.45.67.8 до 123.45.67.9) тогда
Безусловно без каких-либо подстановок выдаётся в ответ заголовок HTTP "Forbidden” (код состояния 403 - Доступ запрещён)


 Как видно отсюда, заголовок User-Agent робота совпадает, и соответствует используемым IP - адресам хостов .
Условие выше разрешает проверку нескольких IP-адресов (123.45.67.8
и 123.45.67.9).

Создание HTTP-отражателя, на базе URL-ссылок.
Можно запрограммировать гибкий URL-отражатель работающий, как заголовок HTTP-ссылок и сконфигурировать его для
столь большого количества ссылающихся страниц, сколько понадобится.
Здесь показано как это делается:

 RewriteMap deflector txt:/path/to/deflector.map
 RewriteRule ^/(.*)
 ${deflector:%{HTTP_REFERER}|/$1}
 RewriteRule ^/DEFLECTED %{HTTP_REFERER} [R,L]
 RewriteRule .* - [PT]

Используется совместно с с соответствующей картой перезаписи, например:

 http://www.badguys.com/bad/index.html DEFLECTED
 http://www.badguys.com/bad/index2.html DEFLECTED
 http://www.badguys.com/bad/index3.html http://somewhere.com/

 Автоматически перенаправляет запрос назд на ссылающуюся страницу если URL
соответствует значению DEFLECTED на карте. В других случаях запрос перенаправляется на специальные URL.

 Защита вашего содержимого от роботов и пауков

 Если вы серьёзно озабочены защитой вашего веб-содержимого (контента), вам надо быть осведомлёнными о роботах и пауках.
 Все поисковые машины, как то Yahoo!, AltaVista, Excite, и Infoseek
используют автоматизированные поисковые машины, который сканируют веб-страницы и индексируют содержимое.
 Это как правило полезно и желательно, но в некоторых случаях вам может понадобится запретить этим роботам
доступ к определённым страницам ваших сайтов.
 Если содержимое какого-либо раздела вашего сайта часто обновляется (например, ежедневно),
то вам не стоит разрешать индексирование этой стреницы. Почему? Например, пользователь
найдя с помощью поисковой машины ссылку на содержимое страницы, которое уже устарело,
кликнув по ней получит сообщение "Ссылка не существует" - не будет этим обрадован.
 Таким образом, у пользователя должна быть возможность переходить по ссылкам вперёд без
необходимости возврата обратно на ваш сайт.

 Так и будет в случае, если вам надо запретить индексирование содержимого страницы (или
её части). Эти роботы могут оказывать желательные или нежелательные воздействия на сеть
и сайты, расположенные внутри нее. В ряде случаев роботы могут вызвать перегрузку сети
и значит и веб-сайтов своими поисковыми запросами, одновременно открывая много документов.
 В настоящее время усилия направлены по пути стандартизации поисковых веб-роботов.
 Текущая версия RobotExclusion Protocol, позволяет администраторам веб-сайтов размещать файл robots.txt
на веб-сайте, указывающий, что именно роботам не позволяется. Например, большой архив
изображений бесполезен для роботов в случаях, когда они индексируют содержимое HTML-страниц.
 Обработка таких файлов роботами приводит к большим затратам ресурсов и сервера и робота.
 Текущий протокол исключения роботов (Robot Exclusion Protocol) принят на добровольных началах,
и этикет разработчиков рождается по мере опыта полученного в результате их распространения.
 Большинство популярных поисковых машин соблюдают протокол.
 Когда совместимый с протоколом робот заходит на сайт www.somesite.com, он сначала проверяет существование
 URL http://www.somesite.com/robots.txt.
 Если этот URL существует, робот парсит его содержимое до директивы, указывающей
как надо индексировать этот сайт. Как администратор сервера, вы можете саостоятельно воздать директивы,
которые будут иметь смысл для вашего сайта.
 Примечание: На сайте может быть только один файл /robots.txt.
в этом файле содержатся записи подобные нижеследующим:

 User-agent: *
 Disallow: /cgi-bin/
 Disallow: /tmp/
 Disallow: /~sam/

 Первая директива, User-agent, сообщает роботу, что следующие директивы должны выполнятся
для любого робота. Следующие три директивы, Disallow, сообщают роботу
что доступ к каталогам перечсленным в них, закрыт. Примечание: необходимы
отдельные строки Disallow для каждого URL-префикса если надо вам что-то исключить.

 Не допускается такое использование:

 Disallow: /cgi-bin/ /tmp/ /~sam/

 Также не используйте пустые строки в записях, поскольку пустые строки используются
для разграничения различных записей. Регулярные выражения не поддерживаются в строках
User-agent или Disallow.  * в поле User-agent имеет особое значение
означающее "любой робот". Особо отметим, что не возможны такие строки:

 Disallow: /tmp/*

или

 Disallow: *.gif

 Всё что явно не запрещено то считается разрешённым для робота (некоторые примеры
конфигурации приведены ниже).

 Исключение всех роботов
Чтобы исключить просмотр всеми роботами всего сервера, используют следующую конфигурацию:

 User-agent: *
 Disallow: /

 Дать всем роботам полный доступ:
 Чтобы дать всем роботам полный доступ, используют следующую конфигурацию:
 User-agent: *
 Disallow:

 Аналогичный эффект достигается удалением файла robots.txt.

 Исключение одиночного робота

Для исключения доступа к сайту робота, в данном случае WebCrawler, используют следующую конфигурацию:
 
 User-agent: WebCrawler
 Disallow: /

 Разрешение одного робота
Для разрешения доступа к сайту робота, в данном случае WebCrawler, используют следующую конфигурацию:

 User-agent: WebCrawler
 Disallow:
 User-agent: *
 Disallow: /

 Исключение одного файла
 Для запрета индексирования файла всеми роботами, в данном файла случае /daily/changes_to_often.html
 используют следующую конфигурацию:

 User-agent: *
 Disallow: /daily/changes_to_often.html

 Замечание: Тут не бывает директивы Allow для роботов.

 Примечание: Текст представляет собой слегка доработанный перевод из руководства Apache Server Manual


Источник: http://projects.apache.org/projects/http_server.html
Категория: Мои статьи | Добавил: golodg (25.05.2012) | Автор: German Golod E W
Просмотров: 2076 | Теги: Блокировка роботов, Apache, Web-server, http, robots.txt | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Опросы
Оцените мой сайт
Всего ответов: 306