В WordPress часто возникает необходимость ограничить доступ к определённым файлам и папкам, чтобы повысить безопасность сайта и предотвратить несанкционированный доступ. Самый эффективный способ сделать это — использовать файл .htaccess, который управляет правилами веб-сервера Apache.
Зачем запрещать доступ к файлам в WordPress
WordPress по умолчанию хранит множество конфиденциальных файлов, к которым не должен иметь доступ никто, кроме администратора сайта. Например, файлы конфигурации, скрипты плагинов или темы, системные директории. Если злоумышленник получит к ним доступ, это может привести к взлому сайта или утечке данных.
Кроме того, запрет доступа к отдельным файлам помогает предотвратить автоматизированные атаки и снизить нагрузку на сервер.
Использование .htaccess позволяет ограничить доступ на уровне веб-сервера без необходимости вмешательства в код WordPress, что делает этот метод универсальным и очень безопасным.
Основные правила запрета доступа через .htaccess
Запрет доступа к wp-config.php
Файл wp-config.php содержит важнейшие настройки сайта, включая данные для подключения к базе данных. Его доступ должен быть строго ограничен:
# Запретить доступ к wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>Это правило полностью запрещает доступ к файлу wp-config.php извне. Даже если кто-то попробует зайти на https://ваш-сайт.ru/wp-config.php, будет выдана ошибка 403.
Запрет доступа к .htaccess
Парадоксально, но файл .htaccess тоже должен быть защищён, чтобы никто не мог его изменить или прочитать:
# Защита файла .htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>Это простой, но важный шаг для безопасности.
Запрет доступа к файлам PHP в каталогах uploads
Папка wp-content/uploads предназначена для хранения медиафайлов и не должна содержать исполняемых PHP-скриптов. Чтобы запретить запуск PHP-файлов в этой директории, можно создать .htaccess в папке uploads со следующим содержимым:
# Запретить выполнение PHP в uploads
<FilesMatch "\.php$">
deny from all
</FilesMatch>Это повысит безопасность, так как даже если в uploads попадут вредоносные скрипты, они не будут выполняться.
Запрет доступа к системным каталогам и файлам
Защита каталога wp-includes
Каталог wp-includes содержит системные файлы WordPress, к которым нет необходимости обращаться напрямую. Чтобы ограничить к ним доступ, добавьте в корневой .htaccess правило:
# Защита wp-includes
RewriteEngine On
RewriteBase /
RewriteRule ^wp-includes/ - [F,L]Это правило запрещает доступ к любым файлам в папке wp-includes.
Защита других важных файлов
Кроме того, рекомендуется запретить доступ к файлам лицензии и readme:
# Запрет доступа к readme.html и license.txt
<FilesMatch "^(readme\.html|license\.txt)$">
order allow,deny
deny from all
</FilesMatch>Эти файлы могут содержать информацию, полезную для хакеров, поэтому лучше скрыть их.
Пример комплексного .htaccess для защиты WordPress
Ниже пример файла .htaccess, который объединяет все вышеперечисленные правила:
# BEGIN WPFix Security
<Files wp-config.php>
order allow,deny
deny from all
</Files>
<Files .htaccess>
order allow,deny
deny from all
</Files>
<FilesMatch "^(readme\.html|license\.txt)$">
order allow,deny
deny from all
</FilesMatch>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-includes/ - [F,L]
# END WPFix SecurityОбязательно создайте отдельный файл .htaccess в папке wp-content/uploads с запретом на выполнение PHP, как показано выше.
Использование плагинов для безопасности .htaccess
Если вы не хотите редактировать .htaccess вручную, можно использовать плагины для безопасности, которые автоматизируют этот процесс. Среди популярных решений:
- Clearfy Pro — содержит модуль защиты файлов и автоматическую настройку .htaccess для безопасности.
- WPGPT Security (если используется плагин WPGPT) — может помочь с базовыми правилами безопасности.
- Clearfy Pro на WPSHOP — удобный инструмент с поддержкой множества настроек безопасности.
Плагины позволяют не только защитить файлы, но и контролировать доступ к панели администратора, блокировать IP и многое другое.
Как проверить работу правил .htaccess
После внесения изменений важно проверить, что доступ к защищённым файлам действительно запрещён.
Для этого попробуйте открыть в браузере адреса типа:
https://ваш-сайт.ru/wp-config.phphttps://ваш-сайт.ru/.htaccesshttps://ваш-сайт.ru/wp-includes/js/jquery/jquery.js(должен быть запрещён)
Если вы видите ошибку 403 Forbidden или аналогичное сообщение, значит правила работают корректно.
Если же доступ открыт, проверьте правильность размещения .htaccess и поддерживается ли вашим сервером Apache модуль mod_rewrite.
Советы по безопасности .htaccess и WordPress
Кроме запрета доступа через .htaccess, рекомендуем:
- Регулярно обновлять WordPress, темы и плагины.
- Использовать сложные пароли и двухфакторную аутентификацию.
- Ограничить доступ к админке по IP, если это возможно.
- Резервное копирование сайта для быстрого восстановления.
В сочетании с грамотной настройкой .htaccess эти меры значительно повысят безопасность вашего сайта.