Сайтов в системе: 1 847
Участников: 12 306
Показов сегодня: 38 914
Сайтов в сёрфинге: 392
Онлайн сейчас: 57
![]()

Файл .htaccess — один из тех инструментов, которыми пользуется почти каждый вебмастер, но мало кто понимает до конца. Его копируют с форумов, вставляют готовые куски из инструкций к CMS, а потом удивляются, почему сайт внезапно выдаёт «500 Internal Server Error» или уходит в бесконечный редирект. При этом базовые вещи в .htaccess осваиваются за вечер, и после этого многие технические задачи SEO решаются за минуты.
Через этот небольшой текстовый файл настраиваются перенаправления со старых адресов на новые, выбор главного зеркала сайта, принудительный переход на HTTPS, кеширование статики в браузере, сжатие, запрет доступа к служебным папкам и многое другое. Для продвижения это не мелочи: дубли страниц, медленная загрузка и цепочки редиректов напрямую мешают индексации и ранжированию.
Разберёмся по порядку: что это за файл, как он работает, какие правила нужны практически каждому сайту и как вносить изменения так, чтобы ничего не сломать.
Название расшифровывается как «hypertext access». Это конфигурационный файл веб-сервера Apache, который позволяет менять настройки сервера для отдельной папки и всех вложенных в неё каталогов без доступа к главному конфигу. Точка в начале имени означает, что в Unix-системах файл считается скрытым — поэтому в некоторых файловых менеджерах его не видно, пока не включишь отображение скрытых файлов.
Ключевой момент, который нужно знать заранее: .htaccess работает только на Apache и совместимых с ним серверах, например LiteSpeed. Если ваш сайт обслуживает чистый Nginx, файл будет просто проигнорирован, а все правила нужно прописывать в конфигурации Nginx, к которой обычно доступа на виртуальном хостинге нет. Часто встречается связка, где Nginx стоит впереди и отдаёт статику, а Apache обрабатывает динамику — в этом случае .htaccess работает, но правила кеширования статики могут не применяться, потому что картинки и стили отдаёт Nginx.
Основной .htaccess находится в корневой папке сайта — там же, где index.php или index.html. Обычно это каталог с названием вроде public_html, www или htdocs. Правила из корневого файла действуют на весь сайт. Если положить отдельный .htaccess во вложенную папку, его правила будут дополнять или переопределять корневые для этой папки.
Если файла нет, его можно создать в любом текстовом редакторе. Важно сохранить его в кодировке UTF-8 без BOM и с правильным именем — ровно «.htaccess», без расширения .txt на конце. Некоторые редакторы в Windows норовят дописать расширение, поэтому имя лучше проверить в файловом менеджере хостинга.
Одна опечатка в .htaccess может положить весь сайт. Поэтому прежде чем что-то менять, усвойте несколько простых привычек.
Файл читается сверху вниз, каждая директива пишется с новой строки. Строки, начинающиеся с решётки, — комментарии, сервер их игнорирует. Комментарии стоит писать обязательно: через полгода вы не вспомните, зачем добавляли то или иное правило.
Большинство SEO-задач решается модулем mod_rewrite. Его работа начинается с директивы RewriteEngine On, которая включает механизм перезаписи. Дальше идут пары из условий и правил:
Самые частые флаги: R=301 — внешний постоянный редирект, L — последнее правило, дальше не обрабатывать, NC — без учёта регистра, QSA — сохранить параметры запроса. Без флага R правило выполняет внутреннюю перезапись: пользователь видит один адрес, а сервер на самом деле отдаёт другой файл. Именно так работают ЧПУ в большинстве CMS.
Помимо mod_rewrite, есть и более простой модуль mod_alias с директивами Redirect и RedirectMatch. Для разовых перенаправлений отдельных страниц он удобнее: одна строка — один редирект. Но смешивать оба модуля для одних и тех же адресов не стоит: они обрабатываются на разных этапах, и результат бывает неожиданным.
Если на сайте установлен SSL-сертификат, все запросы по HTTP должны постоянным редиректом уходить на HTTPS. Иначе у поисковика окажутся две версии каждой страницы. Правило строится так: условие проверяет, что HTTPS выключен, а правило перенаправляет на тот же адрес, но со схемой https. Учтите, что за прокси или CDN сервер может не видеть HTTPS напрямую — тогда проверяют заголовок X-Forwarded-Proto, иначе получится бесконечный цикл.
Сайт с www и без www для поисковиков — два разных хоста. Нужно выбрать один и настроить 301-редирект со второго. Какой вариант выбрать, не принципиально, важно последовательно использовать его везде: в канонических ссылках, карте сайта, внутренних ссылках. Лучше объединить правила HTTPS и зеркала так, чтобы любой из четырёх вариантов адреса приходил к основному за один редирект, а не за два подряд.
Адреса со слешем на конце и без него тоже считаются разными. Определитесь с форматом, который уже использует ваша CMS, и настройте перенаправление с альтернативного варианта. При этом условие должно исключать реальные файлы, иначе к адресу картинки или стиля тоже допишется слеш, и они перестанут загружаться.
Сменили адрес статьи, удалили товар, объединили два раздела — старый адрес нужно перенаправить на новый или на ближайший по смыслу. Для одиночных случаев хватает строки с Redirect 301, старым путём и новым полным адресом. Когда таких редиректов сотни, лучше вынести их в карту перенаправлений на уровне CMS или в конфигурацию сервера: длинный .htaccess читается при каждом запросе и замедляет ответ.
| Задача | Модуль | Типичный код ответа |
|---|---|---|
| HTTP → HTTPS | mod_rewrite | 301 |
| www → без www (или наоборот) | mod_rewrite | 301 |
| Единый формат слеша | mod_rewrite | 301 |
| Старая страница → новая | mod_alias | 301 |
| Временная акция или техработы | mod_rewrite / mod_alias | 302 или 503 |
| Удалённая навсегда страница без замены | mod_alias | 410 |
Скорость загрузки — один из факторов, которые учитывают поисковики, а ещё важнее она для пользователей. Через .htaccess можно заметно ускорить сайт без единой строки кода в самом движке.
Модуль mod_deflate сжимает текстовые ресурсы перед отправкой: HTML, CSS, JavaScript, JSON, SVG. Объём передаваемых данных сокращается в разы. Картинки в форматах JPEG, PNG и WebP сжимать повторно не нужно — они уже сжаты, и выигрыша не будет, только лишняя нагрузка на процессор. Если хостинг поддерживает Brotli, он даёт ещё более плотное сжатие, но настраивается обычно на уровне сервера.
Модули mod_expires и mod_headers позволяют указать браузеру, сколько хранить файлы у себя. Логика простая: то, что меняется редко — картинки, шрифты, стили и скрипты с версией в имени — можно кешировать на месяцы. HTML-страницы кешировать надолго нельзя, иначе посетители не увидят обновлений. Если вы меняете CSS-файл без смены его имени или параметра версии, после настройки долгого кеша часть посетителей будет видеть старое оформление — учитывайте это.
Полезно оборачивать такие блоки в проверку наличия модуля, директивой IfModule. Если модуль на хостинге не установлен, блок просто пропустится, а не уронит сайт ошибкой 500.
.htaccess — удобный способ закрыть доступ к тому, что посторонним видеть не нужно.
Большинство проблем с .htaccess повторяются из сайта в сайт. Вот список того, что встречается чаще всего:
После внесения изменений не ограничивайтесь тем, что главная открылась. Проверьте систематически:
Хороший .htaccess короткий, прокомментированный и понятный. Если файл разросся до сотен строк, скорее всего, часть логики пора переносить в CMS или конфигурацию сервера.
.htaccess — простой, но мощный инструмент, без которого сложно представить техническое SEO на сайтах под Apache. С его помощью вы закрываете вопрос дублей через главное зеркало, HTTPS и единый формат слеша, переносите вес со старых адресов на новые, ускоряете загрузку через сжатие и кеширование и закрываете служебные файлы от посторонних глаз.
Работайте с ним аккуратно: резервная копия перед каждой правкой, изменения по одному блоку, проверка в инкогнито и временные редиректы на время отладки. Освоив эти несколько привычек, вы перестанете бояться ошибки 500 и сможете решать многие технические задачи сами, не дожидаясь программиста.