Как создать и настроить файл .htaccess в WordPress

Если в WordPress нужно включить редиректы, поправить ЧПУ, закрыть доступ к важным файлам или быстро проверить серверную ошибку, чаще всего дело упирается в .htaccess. Это обычный конфигурационный файл для Apache и совместимых серверов. В WordPress он используется не всегда, но на многих хостингах именно через него удобно решать базовые задачи без установки дополнительных плагинов.

Сразу оговорюсь: .htaccess работает только на Apache и на LiteSpeed с поддержкой правил Apache. Если сайт работает на Nginx, этот файл либо вообще не используется, либо его правила нужно переносить в конфигурацию сервера. На shared-хостинге доступ к серверным настройкам обычно ограничен, поэтому .htaccess часто и становится основным инструментом.

Где находится .htaccess и когда его нужно создавать

В типичной установке WordPress файл лежит в корне сайта, рядом с папками wp-admin, wp-content и wp-includes. Если файл скрыт, его не видно в обычном файловом менеджере, потому что имя начинается с точки. На хостингах и в FTP-клиентах часто нужно включить показ скрытых файлов.

Создавать .htaccess вручную имеет смысл в трёх случаях:

  • файла нет, а нужно включить постоянные ссылки;
  • нужно добавить свои правила редиректов или ограничений доступа;
  • после сбоя файл был удалён или повреждён.

Если WordPress установлен в подкаталог, например /site/, файл будет именно в корне этой установки, а не на уровень выше, если только вы специально не настраивали сайт иначе.

Как создать .htaccess вручную

Самый безопасный способ — создать файл через FTP-клиент или файловый менеджер хостинга. Название должно быть именно .htaccess, без расширения .txt и без лишних символов. На Windows это частая ошибка: файл сохраняют как htaccess.txt или .htaccess.txt, а потом WordPress его не видит.

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

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

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

Как включить ЧПУ через .htaccess

Для постоянных ссылок WordPress использует правила переписывания URL. Без них адреса вида /post-name/ не будут работать корректно на Apache. Если после смены структуры ссылок страницы отдают 404, сначала проверьте именно .htaccess.

Практический порядок такой:

  1. Откройте админку WordPress.
  2. Перейдите в Настройки → Постоянные ссылки.
  3. Ничего не меняя, нажмите Сохранить изменения.

Этот шаг заставляет WordPress пересоздать правила, если у него есть доступ к файлу. Если запись запрещена, обновление не произойдёт, и тогда нужно вставить правила вручную в .htaccess.

После сохранения проверьте несколько записей и страниц. Если главная открывается, а отдельные записи дают 404, проблема обычно в правилах переписывания, а не в самих страницах.

Редиректы в .htaccess: когда это удобно и как не сломать сайт

.htaccess часто используют для редиректов с HTTP на HTTPS, с www на без www, со старых URL на новые и для временных переездов. Это удобно, потому что правило срабатывает на уровне сервера до загрузки WordPress.

Перед добавлением редиректа проверьте два момента: сайт уже должен открываться по целевому адресу, и у вас должен быть доступ к редактированию файла. Ошибка в одном символе может создать бесконечный цикл перенаправлений или уронить сайт в 500-ю ошибку.

Пример редиректа с HTTP на HTTPS для Apache:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Если у вас уже есть блок WordPress с правилами ЧПУ, не дублируйте RewriteEngine On без необходимости. Обычно правила редиректов ставят выше стандартного блока WordPress, чтобы они отрабатывали раньше.

Для переезда страницы на новый адрес можно добавить точечный редирект:

Redirect 301 /old-page/ https://example.com/new-page/

Такой вариант простой, но подходит только для одиночных адресов. Если редиректов много, удобнее использовать единый блок с mod_rewrite, чтобы не плодить разрозненные правила.

Как ограничить доступ к админке и важным файлам

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

Один из полезных и безопасных сценариев — запретить прямой доступ к wp-config.php. Этот файл содержит чувствительные данные, и его не стоит оставлять открытым без необходимости:

<Files wp-config.php>
Require all denied
</Files>

На старых конфигурациях Apache 2.2 вместо Require all denied иногда встречается старый синтаксис Deny from all. Если хостинг современный, лучше использовать вариант с Require.

Если вы хотите ограничить доступ к wp-admin по IP, сначала убедитесь, что ваш IP статичный. Иначе можно легко заблокировать себе вход после смены сети или провайдера. Для такой задачи лучше применять правило только если вы понимаете, как быстро откатить изменения через FTP.

Как исправить ошибки WordPress на уровне сервера через .htaccess

Когда сайт начинает отдавать 500 Internal Server Error, белый экран или перестаёт открывать отдельные разделы, .htaccess — один из первых файлов для проверки. Особенно если проблема появилась сразу после ручного редактирования или установки плагина, который менял правила.

Самый быстрый способ диагностики — временно переименовать файл, например в .htaccess.bak. Если сайт после этого оживает, значит причина была именно в правилах. Тогда можно вернуть файл и добавлять блоки по одному, пока не найдёте проблемную строку.

Если WordPress перестал открывать записи после изменения постоянных ссылок, обычно помогает такой порядок:

  1. переименовать текущий .htaccess;
  2. зайти в админку WordPress;
  3. открыть Настройки → Постоянные ссылки;
  4. нажать Сохранить изменения;
  5. проверить страницы снова.

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

Как проверить, что .htaccess работает правильно

После любых изменений не ограничивайтесь открытием главной страницы. Проверьте именно те сценарии, ради которых вы редактировали файл.

  • Если настраивали ЧПУ — откройте несколько записей и страниц по «красивым» URL.
  • Если добавляли редирект — проверьте старый и новый адрес в браузере или через онлайн-проверку заголовков.
  • Если закрывали файл — убедитесь, что при прямом обращении к нему сервер отдаёт отказ в доступе.
  • Если исправляли ошибку — посмотрите, исчез ли код 500 и не появились ли новые редирект-циклы.

Полезно очищать кэш браузера и кэш плагинов, если они есть. Иногда кажется, что правило не сработало, хотя на самом деле вы видите старую версию страницы из кэша.

Что делать, если .htaccess не применяется

Если файл есть, но правила игнорируются, причина обычно одна из трёх: сервер не Apache, модуль mod_rewrite отключён, либо хостинг запрещает переопределение настроек через .htaccess. На обычном shared-хостинге это встречается реже, но на некоторых конфигурациях проблема вполне реальна.

Проверьте ещё и базовые вещи:

  • файл лежит в правильной папке сайта;
  • имя написано без расширения;
  • права доступа не мешают чтению файла сервером;
  • внутри нет синтаксической ошибки в одной из строк.

Если вы не уверены, что именно сломано, начните с минимального набора: стандартный блок WordPress и одно простое правило редиректа. Так проще понять, работает ли сам механизм, а не угадывать по сложному набору правил.

Для типовых задач WordPress — ЧПУ, редиректов и базовой чистки сайта — иногда удобнее сначала убрать лишние плагины, которые дублируют серверные правила. Например, Clearfy Pro помогает сократить часть технического мусора в WordPress, но сам .htaccess он не заменяет. Если задача именно серверная, редактировать файл всё равно придётся вручную.

Рабочий сценарий здесь простой: сначала сделайте резервную копию текущего .htaccess, потом вносите одно изменение, сразу проверяйте результат и только после этого добавляйте следующее. Для этого файла это лучший способ не потерять доступ к сайту и не ловить ошибки вслепую.

⭐⭐⭐⭐⭐