Статьи по .htaccess

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

Фильтрация по IP

Ограничение доступа по IP позволяет быстро и безболезненно запретить или ограничить доступ к сайту определенным IP адресам или целым подсетям.

Парольная защита

Директивы авторизации в файле .htaccess предназначены для установки пароля на конкретные директории, находящиеся на сервере.

Блокировка по referer

Запрет доступа по HTTP заголовку referer через htaccess, позволяет блокировать нежелательный входящий трафик с определенных сайтов.

Как работает mod_rewrite

Туториал по mod_rewrite: синтаксис RewriteRule (паттерн, подстановка, флаги L/R/NC/QSA/F/C/S), условия RewriteCond и переменные %{HTTP_HOST}/%{REQUEST_URI}/%{HTTPS}, RewriteBase, бэкрефы $1/%1, порядок обработки правил в .htaccess и [L]/[END], частые ошибки (нет RewriteEngine On, относительный [R], бесконечный редирект) — с примерами и ссылками на онлайн-тестер.

PCRE: регулярные выражения для mod_rewrite

Регулярные выражения в .htaccess (RewriteRule, RewriteCond, RedirectMatch, FilesMatch): якоря ^ $, символьные классы [a-z] [^/], кванторы * + ? {n,m}, группы и захваты ( ) → $1 / %1, экранирование \., особенности в RewriteCond и переменных %{…}, флаг [NC], готовые шаблоны (slug, числовой ID, языковой префикс, картинки) — с примерами и онлайн-тестером.

AllowOverride и .htaccess vs httpd.conf

Что такое AllowOverride и почему хостинг решает, что можно в .htaccess: группы All / FileInfo / Options / AuthConfig / Limit / Indexes / None — что каждая разрешает; .htaccess vs <Directory> в конфиге сервера (что можно где, почему конфиг быстрее — .htaccess читается на каждый запрос), как перенести правила из .htaccess в <Directory>, директива AllowOverrideList (точечно), типичные 500-ошибки от узкого AllowOverride (Options not allowed here), когда .htaccess всё-таки нужен (shared-хостинг).

.htaccess и nginx: чем отличаются и как переносить правила

Чем .htaccess (Apache) отличается от конфига nginx: nginx не читает .htaccess вообще (философия — производительность, всё в server/location), таблица соответствий (RewriteRule → rewrite/return, Redirect → return 301, FilesMatch deny → location ~ {deny all}, Header → add_header с особенностями наследования, ErrorDocument → error_page, ExpiresByType → expires, Order/Allow/Deny → allow/deny, AuthType Basic → auth_basic, mod_deflate → gzip), что в nginx делается иначе (нет Options, PHP через fastcgi_pass, переменные через map), схема nginx-фронт + Apache-бэк, когда выбрать что.

Отладка .htaccess: error_log, LogLevel rewrite:trace, чтение логов

Отладка .htaccess: где error_log на разных хостингах и как его читать (имя файла, номер строки, Invalid command, not allowed here), LogLevel alert rewrite:trace3 для пошаговой трассировки mod_rewrite (только в конфиге/vhost, не в .htaccess) и как читать вывод трейса, RewriteLog (удалён в 2.4 → LogLevel), бинарный поиск по .htaccess (закомментировать половину), apachectl configtest, чтение access_log, онлайн-инструменты (линтер, тестер RewriteRule, объяснялка, симулятор нагрузки).

.htaccess: мифы о производительности

Правда ли .htaccess замедляет сайт: .htaccess читается и парсится Apache на КАЖДЫЙ запрос ко всем файлам в каталоге и во всех родительских — но для нормального небольшого файла оверхед микроскопический; реально медленно — гигантские файлы, .htaccess по копии в каждой подпапке, широкий catch-all .* в начале правил; как ускорить — перенести в конфиг сервера с AllowOverride None, не плодить .htaccess в подкаталогах, ранний выход для статики, FilesMatch вместо широких RewriteRule; мифы поменьше (Options -Indexes / Header set / mod_rewrite сами не тормозят).

Глоссарий: термины .htaccess и Apache

Краткий словарь терминов .htaccess и Apache: AllowOverride, httpd.conf и vhost, mod_rewrite / RewriteRule / RewriteCond / RewriteBase / флаги [L,R,F,QSA,NC] / серверные переменные %{…} / бэкрефы $N %N, mod_alias / Redirect / RedirectMatch, mod_headers / Header, mod_expires / ExpiresByType, mod_deflate / gzip / Brotli, mod_setenvif, контейнеры <FilesMatch>/<IfModule>/<RequireAll>, Require / Order / Allow / Deny, AuthType Basic / .htpasswd, ErrorDocument, Options (Indexes / FollowSymLinks / ExecCGI / Includes / MultiViews), DirectoryIndex, PCRE / regex, .user.ini, PHP-FPM vs mod_php, CGIPassAuth, X-Robots-Tag, HSTS / CSP / X-Frame-Options, фронт-контроллер, ЧПУ, 301 / 302 / 307 / 308 / 410, hotlink, ETag / Cache-Control / Vary, MIME-тип.

FAQ: частые вопросы про .htaccess

Частые вопросы про .htaccess с короткими ответами и ссылками: что такое .htaccess и куда его класть, почему не работает (500 / игнорируется / nginx), как сделать редирект (301 vs 302), как защитить папку паролем, как закрыть доступ к файлу, как включить ЧПУ, как принудительно HTTPS, тормозит ли .htaccess, чем отличается от httpd.conf, работает ли на nginx, как отлаживать, безопасно ли постить .htaccess в онлайн-инструменты, что делать при 500, как проверить синтаксис, как блокировать ботов и страны.

Опасные .htaccess: что прячут вредоносные файлы и как их вычистить

Что злоумышленники прячут в .htaccess после взлома сайта: массовые редиректы посетителей и поисковиков на спам, исполнение картинок как PHP через AddType/AddHandler, бэкдор через php_value auto_prepend_file, блокировка входа в админку, SEO-спам. Как обнаружить (где искать, по каким признакам и строкам), как безопасно вычистить и чем защититься на будущее.

.htaccess и DNS: что настраивается записями DNS, а что в .htaccess

Чем уровень DNS отличается от .htaccess: записи A/CNAME/MX/TXT решают, какой сервер отвечает за домен; .htaccess решает, что Apache делает с запросом. Что можно ТОЛЬКО в DNS (другой IP, поддомен на другой сервер, почта, SPF/DKIM, CDN), что ТОЛЬКО в .htaccess (http→https, www↔без-www, редиректы путей, авторизация). Почему www-склейку нельзя сделать записью DNS, поддомен против подкаталога, как правильно переехать на новый домен.

Скорая помощь: сайт лёг после правки .htaccess

Пошаговая шпаргалка, когда сайт лёг после изменения .htaccess: первым делом переименуйте файл (ожил — причина в нём), прочитайте error.log (точная строка и причина), бинарный поиск ошибки. Разбор по симптому: 500 Internal Server Error (php_value на FPM, Options без AllowOverride, Order/Allow/Deny на 2.4), 403 Forbidden, ERR_TOO_MANY_REDIRECTS (https за прокси), 404 на все маршруты кроме главной, «правка не действует». Как восстановиться и не повторить.

Академия mod_rewrite. Урок 1: первое правило и как оно работает

Первый урок курса по mod_rewrite с нуля: что такое RewriteEngine On, чем внутренняя перезапись отличается от редиректа [R], разбор первого RewriteRule по частям — паттерн, подстановка, флаги. С упражнениями и тестером.

Академия mod_rewrite. Урок 2: флаги [R], [L], [QSA], [NC], [F], [G] и другие

Второй урок курса по mod_rewrite: разбор всех ключевых флагов RewriteRule — постоянный и временный редирект [R=301/302], [L] vs [END], сохранение query string [QSA], блокировки [F]/[G], цепочки [C]/[S]. С упражнениями.

Академия mod_rewrite. Урок 3: RewriteCond и переменные %{...}

Третий урок курса по mod_rewrite: условия RewriteCond, серверные переменные %{HTTP_HOST}/%{HTTPS}/%{REQUEST_URI}, специальные проверки -f/-d/-s, бэкрефы %1 из условий. Практические примеры: https-редирект, www-канонизация, режим обслуживания.

Академия mod_rewrite. Урок 4: регулярные выражения на практике

Четвёртый урок курса по mod_rewrite: регулярные выражения PCRE в RewriteRule и RewriteCond — якоря, символьные классы, кванторы, группы захвата $1/$2, экранирование точки. Готовые паттерны: slug, числовой ID, язык, картинки, negative lookahead.

Академия mod_rewrite. Урок 5: собираем .htaccess целиком и не ломаем его

Пятый урок курса по mod_rewrite: правильный порядок правил в .htaccess (канонизация → перезапись), защита от петель, фронт-контроллер с !-f/!-d, полный реалистичный пример файла, частые ошибки и пошаговая отладка.

Расширение для браузера на основе htaccess.ru: как сделать самому

Как самому собрать простое браузерное расширение на тему .htaccess: кнопка на панели, которая по текущему сайту показывает тип сервера и заголовки (Server, HSTS, Content-Encoding, X-Powered-By, заголовки безопасности), подсвечивает проблемы и даёт быстрые ссылки на инструменты htaccess.ru. Минимальный manifest.json (Manifest V3), popup.html + popup.js, как загрузить распакованным в Chrome/Firefox, ограничения CORS и разрешений. Готового расширения нет — это учебный шаблон.

Публичное API htaccess.ru — план (черновик)

Черновик дизайна возможного публичного API htaccess.ru (API пока НЕ существует — это предложение для сбора обратной связи): программный доступ к линтеру, объяснялке, аудиту, генератору, конвертерам Apache 2.4 и nginx, тестеру mod_rewrite, проверке совместимости — для встраивания в CI/CD и деплой-скрипты. Описаны предполагаемые эндпоинты POST /api/v1/lint, /explain, /audit, /convert/apache24, /convert/nginx, /rewrite-test, /generate, /compat, форматы JSON-запроса и ответа, аутентификация, коды ошибок и лимиты, приватность.

См. также

Для последовательного изучения — Академия mod_rewrite: 5 уроков от первого правила до сборки целого .htaccess, с упражнениями.

См. также: готовые рецепты .htaccess — блоки под типовые задачи (редиректы, HTTPS, защита, кэш, GZIP) с объяснениями и ссылками на инструменты.

А ещё: справочник директив .htaccess — что делает каждая директива, по модулям, с синтаксисом и примерами.

И справочник HTTP-заголовков в .htaccessHeader set для безопасности (CSP, HSTS, X-Frame-Options), CORS, кэша.

А также гид «Безопасность сайта через .htaccess» — защита файлов, доступ по IP, пароль (HTTP Basic), запрет выполнения PHP в uploads/, анти-бот и хотлинк, hardening — с готовыми блоками и чеклистом.

И гид «Ускорение сайта через .htaccess» — кэш статики, gzip / Brotli, ETag, preload — с готовыми блоками и чеклистом.

И гид «Почему .htaccess не работает» — 500 / 403 / 404, бесконечный редирект, .htaccess игнорируется — симптом → причина → исправление.

И хаб «.htaccess для WordPress» — все WP-рецепты в одном месте (стандартный файл, HTTPS, защита wp-config / wp-login / xmlrpc, кэш, частые проблемы).

И хаб «.htaccess для CMS и фреймворков» — типовые файлы для Laravel, Symfony, Joomla, Drupal, Bitrix, Yii, OpenCart.

И хаб «SEO и редиректы через .htaccess» — канонизация, 301 vs 302, перенос страниц и доменов, цепочки редиректов, X-Robots-Tag.

И хаб «Блокировка ботов, скраперов и AI-краулеров» — по User-Agent / Referer / IP, что не блокировать, robots.txt vs .htaccess, Cloudflare.

И хаб «.htaccess на разных хостингах и панелях» — cPanel, ISPmanager, Plesk, Beget, Timeweb, LiteSpeed, nginx-only: где работает, где error.log, что делать если не работает.

Статья «AllowOverride и .htaccess vs httpd.conf» — что разрешено в .htaccess и как перенести правила в конфиг сервера.

Статья «.htaccess и nginx: чем отличаются» — таблица соответствий Apache↔nginx и почему nginx не читает .htaccess.

Статья «Отладка .htaccess» — error_log, LogLevel rewrite:trace, бинарный поиск, онлайн-инструменты.

Не знаете, с чего начать? — FAQ: частые вопросы про .htaccess и глоссарий терминов.

Статья «.htaccess: мифы о производительности» — правда ли .htaccess тормозит, замеры, как ускорить.

И две сводные страницы: шпаргалка по .htaccess (готовые строки на одной странице) и готовые .htaccess под задачу (полные файлы под сценарий — статический сайт, WordPress, магазин, SPA, API, форум, staging).

А ещё: как собрать браузерное расширение для проверки .htaccess-заголовков и черновик публичного API htaccess.ru.