Если у тебя сайт на WordPress, то ты наверняка слышал про файл .htaccess. Это маленький, но очень мощный файл, который управляет перенаправлениями, защитой сайта, кэшированием и даже скоростью загрузки.
Многие блогеры, вебмастера и владельцы сайтов игнорируют файл .htaccess, боясь что-то сломать. И зря! Если правильно его настроить, можно ускорить сайт, защитить его от взломов и улучшить SEO показатели.
Оглавление:
- Что такое .htaccess в WordPress и зачем он нужен?
- Где находится файл .htaccess в WordPress?
- Как редактировать .htaccess без ошибок?
- Полезные настройки .htaccess для WordPress
- Перенаправления (редиректы) в .htaccess WordPress
- Улучшение безопасности WordPress через файл .htaccess
- Ускорение сайта WordPress через файл .htaccess
- Возможные ошибки после изменения файла .htaccess и их исправление
- Сайт перестал работать после изменений что делать?
- Ошибка 500 (Internal Server Error)
- Ошибка 403 (Forbidden)
- Полный код для файла .htaccess на WordPress
- Финалочка
Что такое .htaccess в WordPress и зачем он нужен?
Файл .htaccess (Hypertext Access) — это конфигурационный файл сервера Apache, который управляет поведением сайта на уровне сервера. Если ваш сайт расположен на сервере с Nginx то для вас этот метод не подойдет. Читайте подробнее о том как узнать какой тип сервера использует ваш хостинг Apache или Nginx? После того как вы точно определились что у вас сервер на Apache читаем дальше.
Что можно сделать с помощью .htaccess?
- Перенаправлять старые страницы на новые (301-редирект).
- Закрывать доступ к сайту от хакеров и ботов.
- Улучшать SEO за счет чистых URL.
- Включать кеширование для ускорения загрузки.
- Ограничивать доступ к определенным файлам и директориям.
Фактически, файл .htaccess — это своего рода пульт управления сервером через код написанный в данном файле.
Где находится файл .htaccess в WordPress?

Файл .htaccess расположен в корневой папке сайта (корневая папка значит основная папка на сервере с именем вашего сайта, где и лежат все основные файлы и папки).
Как найти файл .htaccess:
- Открой FTP-клиент (FileZilla) или хостинг-панель (cPanel, Plesk).
- Перейди в корневую директорию (public_html или /www).
- Если файл не виден, включи показ скрытых файлов.
Важно: Перед редактированием .htaccess обязательно сделай резервную копию!
Как редактировать .htaccess без ошибок?
- Перед изменениями всегда делай резервную копию файла .htaccess.
- Используй Notepad++ или VS Code (любой редактор с форматирование кода)– обычный Блокнот может испортить кодировку.
- Не удаляй стандартный код WordPress!
Обычно .htaccess в WordPress по умолчанию выглядит так:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Эти строки отвечают за ЧПУ (человеко-понятные URL). Если их удалить, ссылки на сайте сломаются. Также обратите внимание чтобы у вас был полный доступ и выставленные права, которые позволят вам редактировать этот файл на сервере.
Полезные настройки .htaccess для WordPress
Хоть данный файл и не является панацеей, он действительно может довольно сильно повлиять на ваш сайт в целом. Далее поговорим более конкретно о возможностях + приведу реальные примеры кода для файла .htaccess, с помощью которых можноулучшить ваш сайт.
Перенаправления (редиректы) в .htaccess WordPress
Перенаправления нужны как для людей так и для поисковых роботов, указываям им на то, что мы хотим показать. Ниже приведены примеры которые являются базой каждого сайта.
301-редирект (постоянный) – если страница переехала:
Redirect 301 /staryi-url https://example.com/novyi-url
Перенаправление всего сайта с HTTP на HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Перенаправление с www на без www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Если вы этого еще не сделали, то данные примеры редиректов улучшают SEO и устраняют дубли страниц.
Улучшение безопасности WordPress через файл .htaccess
Как я уже говорил ранее данный файл является пультом управления сервером, его также необходимо защить во избежания взломов и хакерских атак.
Закрываем доступ к .htaccess и wp-config.php (чтобы их не могли скачать хакеры):
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files wp-config.php>
order allow,deny
deny from all
</Files>
Блокируем доступ к админке WordPress (wp-admin) по IP:
<Files wp-login.php>
order deny,allow
deny from all
allow from 123.456.789.000
</Files>
Запрещаем выполнение PHP в папке загрузок (wp-content/uploads/)
<Directory "/wp-content/uploads/">
<FilesMatch "\.(php|php5|phtml)$">
deny from all
</FilesMatch>
</Directory>
Добавив вышеперечисленный код вы сможете защитить ваш сайт от несанкционированных дейсвий со стороны хакеров.
Ускорение сайта WordPress через файл .htaccess
Очень советую воспользоваться данными советами для оптимизации скорости работы вашего сайта на WordPress. Это простые действия, которые может сделать каждый, даже без опыта в программировании, но результат будет существенным. Итак поехали по порядку.
Кеширование браузера (ускоряет загрузку за счет хранения файлов на стороне пользователя):
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
</IfModule>
Сжатие файлов Gzip (уменьшает размер CSS, JS, HTML)
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript image/svg+xml
</IfModule>
Включение Brotli-сжатия (современная альтернатива Gzip). Brotli – это более эффективный метод сжатия, чем Gzip. Он уменьшает размер файлов до 20-30% больше, чем Gzip, что ускоряет загрузку страниц.
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript image/svg+xml
</IfModule>
Если сервер поддерживает Brotli, он будет использоваться вместо Gzip. Если нет – останется Gzip.
Оптимизация загрузки CSS и JavaScript (defer & async)
WordPress загружает все скрипты одновременно, что замедляет сайт. Можно отложить загрузку JavaScript:
<IfModule mod_headers.c>
<FilesMatch ".(js|css)$">
Header set Cache-Control "public, max-age=31536000"
Header set Vary "Accept-Encoding"
</FilesMatch>
</IfModule>
Это заставит браузер использовать кеш, а не загружать файлы при каждом визите.
Уменьшение количества HTTP-запросов (объединение файлов)
Если у вас много мелких CSS и JS-файлов, можно заставить сервер объединять их в один, чтобы сократить количество запросов:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)\.combined\.(css|js)$ /combine.php?files=$1 [L]
</IfModule>
Для работы потребуется PHP-скрипт, который будет объединять файлы. Это заметно ускоряет загрузку, особенно на слабых хостингах.
Кеширование динамических страниц (Mod_Expires)
Статический кеш сохраняет копию страницы, чтобы сервер не генерировал ее заново при каждом заходе пользователя:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 hour"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Это уменьшает нагрузку на сервер и ускоряет загрузку сайта.
Lazy Load для изображений
Если у в асмного изображений, можно настроить отложенную загрузку – они будут подгружаться только когда пользователь до них дойдет:
Header set Cache-Control «public, max-age=31536000, immutable» Header set Vary «Accept-Encoding»
Это ускоряет первый рендер страницы, а пользователь не ждет загрузку всех картинок сразу.
Отключение ETags (ускоряет кеширование)
ETags – это механизм кэширования, но в некоторых случаях он замедляет загрузку. Лучше его отключить:
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
Это исключает лишние проверки на сервере и делает загрузку быстрее.
Защита от перегрузки сервера (Mod_LimitRequestBody)
Если сайт медленно грузится из-за атак или перегрузки, можно ограничить количество запросов на сервер:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (malicious-bot|bad-bot) [NC]
RewriteRule .* - [F,L]
</IfModule>
Это блокирует подозрительных ботов, которые нагружают сервер и замедляют сайт.
Возможные ошибки после изменения файла .htaccess и их исправление
Новичка часто ломают сайт после редактирования файла .htaccess. Это происходит по неопытности. По этому самое галвное это сделать резервную копию файла, а лучше в нескольких местах и проверять работоспособность сайта после каждого изменения.
Сайт перестал работать после изменений что делать?
- Вернуть резервную копию .htaccess.
- Проверь лог ошибок сервера (можно в cPanel).
- Попробуй удалить .htaccess, а затем перегенерировать его в WordPress:
- Перейди в Настройки → Постоянные ссылки и пересохрани страницу настроек (WordPress создаст новый .htaccess).
Ошибка 500 (Internal Server Error)
Ошибка 500 означает, что где-то в .htaccess неправильный код.
- Проверить синтаксис – в файле не должно быть ошибок или битых строк.
- Отключить по очереди последние добавленные команды, проверяя, что именно сломало сайт.
Ошибка 403 (Forbidden)
Ошибка 403 означает, что доступ к сайту заблокирован (например, если вы закрыли админку по IP, но забыли свой IP-адрес или сделали опечатку).
- Проверить строки deny from all – возможно, вы заблокировали сами себя.
Полный код для файла .htaccess на WordPress
Скопируйте этот код и вставте в свой файл .htaccess. Сюда я не добавлял защиту по IP адресу — вы можете вставить дополнительно. Отредактируйте его перед сохранением и вставьте код который есть выше и напишите свои IP адреса с которых вы будет заходить и редактировать сайт, а также в этом коде удален пример 301 редиректа (что такое редирект читать тут). Так что все будет работать атвоматически. Просто копируй и вставляй:
# BEGIN WordPress (стандартные правила для ЧПУ-ссылок)
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
# Перенаправление с HTTP на HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Перенаправление с www на без www (или наоборот)
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# Защита важных файлов от доступа извне
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files wp-config.php>
order allow,deny
deny from all
</Files>
# Включение кеширования браузера (ускоряет загрузку)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 hour"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
# Сжатие файлов Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript image/svg+xml
</IfModule>
# Включение Brotli-сжатия (если сервер поддерживает)
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript image/svg+xml
</IfModule>
# Lazy Load для изображений (ускоряет первый рендер)
<IfModule mod_headers.c>
Header set Cache-Control "public, max-age=31536000, immutable"
Header set Vary "Accept-Encoding"
</IfModule>
# Объединение файлов CSS и JS (уменьшает HTTP-запросы)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)\.combined\.(css|js)$ /combine.php?files=$1 [L]
</IfModule>
# Блокировка ботов и вредоносных запросов
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (malicious-bot|bad-bot) [NC]
RewriteRule .* - [F,L]
</IfModule>
# Отключение ETags (ускоряет кеширование)
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
Финалочка
Файл .htaccess – это мощный инструмент, который позволяет улучшить SEO, ускорить сайт и защитить его от атак. Главное – работать с ним осторожно. Всегда делайте его резервную копию перед изменениями и проверяйте работоспособность всего сайта после каждого изменения в этом файле.
Это бесплатные и эффективные способы ускорения и защиты сайта без сторонних плагинов.
Воу, очень долго искал, искал медь, а нашел золото …