Поддержка Проблемы и решения Как правильно забанить Мегаиндекс и других ботов?

  • Решено 1596754as98

    (@adminstrelok)


    Прочитав эту тему нашего форума хочу задать вопрос.
    Как правильно и наиболее эффективно «забанить» посковых ботов?
    На просторах и-та по этому поводу масса предложений и все они в принципе сводятся к двум вариантам.
    Первое и самое простое решение — использовать соответствующие директивы в robots.txt/ Например:

    User-agent: MegaIndex
    Disallow: /

    Второй вариант — банить ненужных ботов через .htaccess. Вот в этом варианте встречается куча решений. Вроде бы и похожих, но если всмотреться в код повнимательней — то разных.
    Рассмотрим это на примере «забанивания» Мегаиндекса

    Вариант 1

    SetEnvIfNoCase User-Agent ".*MegaIndex" badbingbot
    Deny from env=badbingbot

    Вариант 2

    ## Блокировка по USER AGENT:
    RewriteCond %{HTTP_USER_AGENT} MegaIndex [OR]
    RewriteRule ^(.*)$ – [F,L]

    Вариант 3

    # Далее список ботов, которым мы запрещаем доступ
    SetEnvIfNoCase User-Agent MegaIndex bad_bot
    Order Allow,Deny
    Allow from all
    Deny from env=bad_bot

    Вариант 4

    <IfModule mod_setenvif.c>
    SetEnvIfNoCase User-Agent "MegaIndex" ban
    <Limit GET POST>
    Order Allow,Deny
    Allow from all
    Deny from env=ban
    </Limit>
    </IfModule>

    Встречал и другие варианты. Так как лучше всего поступить? Какой код 100% рабочий и как потом проверить результат забанивая ботов?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yui

    (@fierevere)

    ゆい

    вариант 5, по User-Agent, для счастливых обладателей nginx

    set $block_user_agents 0;
    if ($http_user_agent ~ "MegaIndex.ru")         { set $block_user_agents 1; }
    if ($block_user_agents = 1)                   { return 403; }

    вариант 6 — банить по IP, любым доступным способом (от iptables до htaccess). Если есть уверенность что у ботов статический адрес или диапазон адресов.

    Модератор Yui

    (@fierevere)

    ゆい

    1,3,4 по сути одинаковы и представляют собой небольшие вариации,
    2 вариант — реврайт по UA, на случай если на сервере не включен mod_setenvif

    как потом проверить результат забанивая ботов

    access.log / error.log боты там все также будут отмечаться, но со статусом ответа сервера 403
    можно проверить локально, подстановкой UA в браузер или curl,wget
    вариант с реврайтом интересно было бы посмотреть на практике, но у меня нет апача )

    Все мои попытки внедрить разные варианты этих «банов» в .htaccess приводят к ошибке 403 самого сайта или «на данном сайте обнаружена циклическая переадресация»….. Что-то я не так делаю. Интересно стало!

    Сработала такая конструкция для всех ботов.
    RewriteCond %{HTTP_USER_AGENT} ^Название бота [NC,OR]
    Точнее не приводит к зависанию сайта. Что дальше будет — пока не ясно :)))

    Модератор Yui

    (@fierevere)

    ゆい

    403 это как раз должный ответ для бота
    кстати 4xx — ошибка клиента, а не сервера (сайта) в отличие от 5хх

    403 это как раз должный ответ для бота

    Но его отдает и сайт… Любая его страница

    и как потом проверить результат забанивая ботов?

    Это оказалось очень просто:
    http://www.bertal.ru/index.php?a2622372/l-konstantin.ru#h

    Результат — эта конструкция в .htaccess 100% работает:
    RewriteCond %{HTTP_USER_AGENT} ^Название бота [NC,OR]

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как правильно забанить Мегаиндекс и других ботов?» закрыта для новых ответов.