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