Блокировка конкретных роботов/ботов от посещения сайта

Вопрос или проблема

Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, как Gecko) Mobile Safari/537.36 (совместимый; Bytespider; [email protected])

.htaccess

RewriteCond %{HTTP_USER_AGENT} (SemrushBot|MJ12bot|AhrefsBot|DotBot|Bytespider|Photon|Spawning-AI|GPTBot|ImagesiftBot|BLEXBot) [NC]
RewriteRule ^(.*)$ – [F,L]

Я не совсем понимаю это правило, что оно делает. В теории оно должно защитить от ботов…
Но на практике это не помогает…

Как сделать так, чтобы, если HTTP_USER_AGENT содержит одну из перечисленных строк, в этом случае заблокировать, закрыть сайт…

В данный момент, например, бот Bytespider. Всё ещё посещает сайт…

Я записываю значение HTTP_USER_AGENT каждого визита и вижу, что этот бот посещает сайт…

Возможно, правило написано неправильно, есть ошибка, участвует регистр или что-то ещё.

Ответ или решение

Для блокировки определенных роботов или ботов на вашем сайте с помощью файла .htaccess, необходимо правильно настроить условия и правила переадресации. Давайте разберем вашу проблему и предложим исправление.

Ваша текущая конфигурация .htaccess написана следующим образом:

RewriteCond %{HTTP_USER_AGENT} (SemrushBot|MJ12bot|AhrefsBot|DotBot|Bytespider|Photon|Spawning-AI|GPTBot|ImagesiftBot|BLEXBot) [NC]
RewriteRule ^(.*)$ – [F,L]
  1. Разбор текущих правил:

    • RewriteCond %{HTTP_USER_AGENT} – это условие проверяет значение заголовка User-Agent в HTTP-запросе.
    • (SemrushBot|MJ12bot|AhrefsBot|DotBot|Bytespider|Photon|Spawning-AI|GPTBot|ImagesiftBot|BLEXBot) – это регулярное выражение, которое включает в себя все указанные роботизированные юзер-агенты.
    • [NC] означает, что проверка не учитывает регистр (не чувствительна к регистру).
    • RewriteRule ^(.*)$ – [F,L] – здесь F указывает на отказ в доступе к ресурсу (403 Forbidden), а L означает, что это последнее правило, которое будет проверено, если условие выполнено.
  2. Проблемы:

    • Возможно, есть синтаксическая ошибка или неправильное использование символов для блокировки. В вашем случае вместо символа должен быть -, чтобы указать код ошибки 403.
  3. Исправление:
    Вам нужно изменить правило следующим образом:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (SemrushBot|MJ12bot|AhrefsBot|DotBot|Bytespider|Photon|Spawning-AI|GPTBot|ImagesiftBot|BLEXBot) [NC]
RewriteRule ^ - [F,L]
  1. Дополнительные рекомендации:
    • Проверьте, действительно ли ваши изменения применяются. Возможно, у вас есть другой файл конфигурации, который переопределяет настройки .htaccess.
    • Убедитесь, что у вас включен модуль mod_rewrite на сервере Apache. Это можно сделать, добавив следующее в ваш конфигурационный файл Apache, если у вас есть доступ к нему:
LoadModule rewrite_module modules/mod_rewrite.so
  • После внесения изменений, обязательно очистите кэш вашего браузера или используйте режим инкогнито для проверки, не кэшируется ли ответ от сервера.

Эти изменения должны помочь заблокировать нежелательные боты с вашего сайта. Если после этого проблема остается, возможно, стоит рассмотреть использование более агрессивных методов блокировки, таких как настройка брандмауэра или использование инструментов анализа трафика.

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

Капча загружается...