ИНСТР-HTACCESS-BOTAnti-botApache mod_rewriteревизия 2026-05-07

.htaccess блокировка ботов

Защита от парсеров, DDoS, content scraping. Блокировка по User-Agent, IP, странам. Готовые правила для Apache.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-HTACCESS-BOT|real-time
calcal.ru / htaccess-block-bot-spider
Загрузка инструмента…
F,L
Forbidden flag
403
HTTP ответ
NC
No Case sensitive
0
Запросов к серверу

Зачем блокировка ботов

Боты составляют 30-50% трафика большинства сайтов. Это статистика Imperva 2023: половина запросов — машины, не люди. Из них половина — «хорошие» (Googlebot, YandexBot — индексируют для поисковиков), половина — «плохие» (парсеры контента, спам-боты, DDoS).

Вредные боты создают проблемы:

  • Нагрузка на сервер. Aggressive scrapers могут делать 100+ запросов в секунду — ваш сайт становится медленным для реальных пользователей.
  • Воровство контента. Парсеры копируют ваши статьи, постят на других сайтах — уникальность контента падает, SEO страдает.
  • SEO-аналитика конкурентов. AhrefsBot, SemrushBot собирают данные для конкурентов — раскрывают вашу стратегию.
  • Database overload. Боты могут запрашивать тяжёлые страницы (поиск, фильтры) и грузить БД.
  • Спам в комментариях / формах. Боты заполняют формы, регистрируют фейк-аккаунты.
  • DDoS. Координированная атака с тысячи IP — ваш сайт ложится.

Готовые шаблоны

1. Блокировка по User-Agent (топ вредных ботов)

RewriteEngine On

# SEO-парсеры конкурентов
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (DotBot|BLEXBot|YisouSpider) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (PetalBot|MegaIndex|SiteAuditBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (AspiegelBot|Slurp|magpie-crawler) [NC,OR]

# Спам-боты
RewriteCond %{HTTP_USER_AGENT} (linkdexbot|XoviBot|Sogou|Crawler) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Riddler|Scrapy|python-requests) [NC,OR]

# Hacking tools
RewriteCond %{HTTP_USER_AGENT} (sqlmap|nikto|nmap|masscan|wpscan) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (zgrab|ZmEu|libwww-perl) [NC,OR]

# Curl и wget (часто используются для парсинга)
RewriteCond %{HTTP_USER_AGENT} ^curl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [NC]

# Возврат 403
RewriteRule .* - [F,L]

2. Блокировка пустого User-Agent

# Блокировать запросы без User-Agent (часто примитивные боты)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^-?$
RewriteRule .* - [F,L]

3. Блокировка по IP

# Apache 2.4 синтаксис
<RequireAll>
  Require all granted
  # Конкретные IP
  Require not ip 1.2.3.4
  Require not ip 5.6.7.8

  # Диапазоны (CIDR)
  Require not ip 10.0.0.0/24
  Require not ip 192.168.1.0/24
</RequireAll>

# Альтернативный синтаксис через RewriteRule
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^1\.2\.3\.4$ [OR]
RewriteCond %{REMOTE_ADDR} ^5\.6\.7\.8$
RewriteRule .* - [F,L]

4. Блокировка по стране (через mod_geoip)

# Требует mod_geoip установленный на сервере
RewriteEngine On

# Блокировать определённые страны (CN — Китай, RU — Россия)
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CN|RU|KP|IR)$
RewriteRule .* - [F,L]

# Или: разрешить только определённые
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(US|GB|DE|FR|RU|UA)$
RewriteRule .* - [F,L]

5. Защита от parsing запросов

# Блокировать запросы с подозрительными параметрами
RewriteEngine On

# SQL injection patterns
RewriteCond %{QUERY_STRING} (UNION|SELECT|INSERT|DELETE|DROP) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|\>|<|>) [OR]

# XSS patterns
RewriteCond %{QUERY_STRING} (alert\(|onclick=|onmouseover=) [NC,OR]

# Path traversal
RewriteCond %{QUERY_STRING} (\.\./|\.\\\\) [NC]

RewriteRule .* - [F,L]
47% всего веб-трафика — это боты. 30% — вредные (scrapers, spam, DDoS). Защита от них — must-have для любого коммерческого сайта. Без правил блокировки — сервер тратит ресурсы на ботов, а реальные пользователи получают медленную загрузку.Imperva Bad Bot Report 2023

Подводные камни

Не блокируйте Googlebot и YandexBot!

Самая опасная ошибка — случайно заблокировать поискового бота. Если ваш regex слишком широкий (например, .*Bot.*), он поймает Googlebot. Через несколько недель страницы выпадают из индекса.

# ОПАСНО: блокирует Googlebot, YandexBot, BingBot
RewriteCond %{HTTP_USER_AGENT} bot [NC]
RewriteRule .* - [F,L]

# БЕЗОПАСНО: точные имена вредных ботов
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot) [NC]
RewriteRule .* - [F,L]

# Проверка через Yandex Webmaster:
# Раздел "Ошибки сканирования" — там увидите если бот блокирован.

Подделка User-Agent

Серьёзные парсеры подделывают User-Agent под обычный Chrome / Firefox. Простые правила .htaccess их не ловят. Для защиты от них:

  • Cloudflare bot management. Использует fingerprinting (TLS, поведение) — детектирует даже подделанных ботов.
  • JavaScript challenge. Cloudflare показывает «I'm not a robot» на 5 секунд — реальные пользователи проходят, боты застревают.
  • reCAPTCHA / hCaptcha. На критичных страницах (формы, поиск).
  • Rate limiting + IP reputation. Через AbuseIPDB или Project Honey Pot.

Производительность .htaccess

.htaccess читается с диска при КАЖДОМ запросе. Большой файл с 100+ правил замедляет сервер. Решения:

  • Перенесите правила в основной httpd.conf. Читается один раз при старте Apache. AllowOverride None для повышения производительности.
  • Используйте Cloudflare — фильтрация на стороне CDN, .htaccess не задействуется.
  • fail2ban — анализирует логи, блокирует на уровне iptables (быстрее .htaccess).

Тестирование

curl — проверка User-Agent

# Запрос с User-Agent AhrefsBot
curl -A "AhrefsBot/7.0" https://example.com -I
# Должен вернуть HTTP/1.1 403 Forbidden

# Проверка что Googlebot НЕ блокирован
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1)" https://example.com -I
# Должен вернуть HTTP/1.1 200 OK

# Проверка пустого User-Agent
curl -A "" https://example.com -I
# Должен вернуть 403 если правило настроено

Анализ логов

# Топ вредных ботов в логах
awk -F\" '{print $6}' /var/log/apache2/access.log \
  | sort | uniq -c | sort -rn | head -20

# Сколько запросов от AhrefsBot
grep "AhrefsBot" /var/log/apache2/access.log | wc -l

# IP с наибольшим количеством запросов
awk '{print $1}' /var/log/apache2/access.log \
  | sort | uniq -c | sort -rn | head -10

# Распределение HTTP кодов (видим 403 — блокировки)
awk '{print $9}' /var/log/apache2/access.log \
  | sort | uniq -c | sort -rn

Альтернативы .htaccess

  • Cloudflare — лучшее решение для большинства. Bot fight mode, rate limiting, WAF в бесплатном тарифе.
  • fail2ban — анализирует логи, блокирует через iptables. Защищает от brute-force атак.
  • Nginx limit_req — встроенное rate limiting. Если используете Nginx вместо Apache.
  • ModSecurity — Web Application Firewall для Apache/Nginx. Защита от SQL injection, XSS, path traversal.
  • HAProxy — load balancer с продвинутой фильтрацией трафика.
ИСТОЧНИКИ
  1. Imperva — Bad Bot Report. Imperva. imperva.com/resources/resource-library/reports/bad-bot-report. 2023.
  2. Apache mod_rewrite Documentation. Apache Software Foundation. httpd.apache.org/docs/2.4/mod/mod_rewrite.html. 2024.
  3. Project Honey Pot — Bad Bot list. Project Honey Pot. projecthoneypot.org. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Полезные (НЕ блокировать): Googlebot, YandexBot, BingBot, DuckDuckBot, Applebot, FacebookExternalHit, TwitterBot — индексируют для поисковиков и соцсетей. ВРЕДНЫЕ: AhrefsBot, SemrushBot, MJ12bot, DotBot, BLEXBot — SEO-парсеры, грузят сервер. Скрейперы: Scrapy, python-requests, curl, wget — обычно вредно. Спам: SemRush, AspiegelBot, PetalBot. Блокировать через User-Agent в .htaccess.
В .htaccess: <code>RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot) [NC]\n RewriteRule .* - [F,L]</code>. NC = case-insensitive. F = forbidden (403). L = last rule. Но: вредоносные боты подделывают User-Agent под Chrome / Firefox — этот метод ловит только «честных» ботов. Для серьёзной защиты — fail2ban + rate limiting + Cloudflare.
<code>Require all granted\n Require not ip 1.2.3.4\n Require not ip 10.0.0.0/24</code> — Apache 2.4 синтаксис. Старый Apache 2.2: Order/Allow/Deny. Можно блокировать диапазоны (CIDR). Для известных bot networks (Tor exit nodes, VPN провайдеры) есть готовые списки на github. Но: блокировка по IP не работает против ботов с rotation IP или residential proxies.
Ограничение количества запросов с одного IP за период. Например, не более 60 запросов в минуту. Защищает от DDoS и aggressive scraping. В Apache есть mod_qos и mod_evasive для этого. Nginx — limit_req. Cloudflare имеет встроенный rate limiting в бесплатном тарифе. Для большинства сайтов — достаточно Cloudflare без дополнительных настроек на сервере.
(1) Большой DDoS — bottlenecks на уровне сервера, не Apache. Нужен Cloudflare / DDoS-protection провайдер. (2) Боты с rotation IP — каждый запрос с нового адреса, fail2ban не успевает блокировать. (3) Подделанные User-Agent — обходят простые правила. (4) Headless browsers (Playwright, Puppeteer) — выглядят как реальные пользователи. Для серьёзной защиты — комплексное решение: Cloudflare + WAF + fingerprinting.
curl с подделкой User-Agent: <code>curl -A "AhrefsBot" https://example.com</code> — должен вернуть 403. Проверка через VPN (если блокировка по странам). Тест нагрузки: <code>ab -n 100 -c 10 https://example.com/</code> — превысит rate limit. Также проверьте логи /var/log/apache2/access.log — увидите 403 ответы. Главное: не заблокируйте Googlebot случайно — может выпасть из выдачи.
robots.txt — это РЕКОМЕНДАЦИЯ ботам, что индексировать. Хорошие боты (Googlebot) уважают, плохие (скрейперы) игнорируют. .htaccess — это ЖЁСТКАЯ блокировка на уровне сервера. Запрос приходит → возвращается 403, не зависит от воли бота. Для защиты от вредных ботов используйте .htaccess. Для управления индексацией поисковиками — robots.txt + meta robots.
Cloudflare — современнее и эффективнее. Бесплатный тариф уже включает: DDoS protection, bot management (распознаёт многих ботов автоматически), rate limiting, WAF (web application firewall), analytics. Платные тарифы — расширенный bot management, custom rules. .htaccess — для VPS/shared hosting без Cloudflare, или дополнительный слой. Идеально: оба + fail2ban для серверных атак.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.