Ошибка 403 Forbidden WordPress — как исправить
Почему возникает ошибка 403 в WordPress
Причин обычно три:
- Плагин безопасности блокирует доступ. Wordfence, All In One WP Security, Sucuri иногда срабатывают ложно — после обновления, смены IP или когда несколько неудачных попыток входа подряд.
- Неправильные права на файлы и папки. После переноса сайта или правки через FTP файлы могут получить права 644, а папки — 755. Если поставили 600 на папку wp-content или 444 на index.php — сервер отдаст 403.
- Сломанный .htaccess. Плагин кэширования, SEO-плагин или ручная правка могли записать в .htaccess неработающее правило. Особенно часто это случается на хостингах с Nginx (Beget, Timeweb), где .htaccess работает не так, как на Apache.
Реже причина в неправильных настройках PHP, exhausted memory или несовместимости версий.
Похожая ситуация — когда сайт отдаёт белый экран вместо 403. О том, как это исправить, мы писали в статье «Белый экран смерти WordPress — как исправить».
Как исправить — пошаговая инструкция
Шаг 1. Отключите плагины
Если у вас есть доступ к админке, отключите все плагины безопасности. Если доступа нет — переименуйте папку плагинов через FTP или файловый менеджер хостинга.
# В корне сайта
mv wp-content/plugins wp-content/plugins.bak
# Для проверки создайте пустую папку
mkdir wp-content/plugins
Если ошибка исчезла — возвращайте папке оригинальное имя и включайте плагины по одному, пока не найдёте проблемный.
Подробнее про восстановление доступа — в статье «WordPress не пускает в админку — как восстановить доступ».
Шаг 2. Проверьте права на файлы
Нормальные права для WordPress:
- Файлы: 644
- Папки: 755
- wp-config.php: 600 (в идеале)
Через FTP:
# Рекурсивно на файлы
find /home/e/enixprzu/de-bor.ru/public_html -type f -exec chmod 644 {} \;
# На папки
find /home/e/enixprzu/de-bor.ru/public_html -type d -exec chmod 755 {} \;
На Beget права выставляются через файловый менеджер в ISPmanager. На Timeweb — через раздел «Файлы» в панели хостинга. На Reg.ru — через FTP-клиент.
Шаг 3. Сбросьте .htaccess
Переименуйте старый .htaccess в .htaccess.bak и создайте новый с базовыми правилами WordPress:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Если сайт заработал — проблема была в правиле из плагина кэширования или SEO.
Шаг 4. Проверьте исключения в плагине безопасности
Wordfence: зайдите в Wordfence → Firewall → Blocked IPs. Если видите свой IP — снимите блокировку. Проверьте также раздел «Белый список» — добавьте свой IP туда.
All In One WP Security: этот плагин блокирует доступ к wp-admin после N неудачных попыток входа. Сбросьте блокировку в панели плагина или через БД: таблица wp_login_lockdown.
Sucuri: проверьте, не стоит ли галочка «Блокировать доступ к wp-admin». Отключите временно файловый сканинг в настройках плагина.
Проверка результата
Откройте сайт в чистом окне браузера (инкогнито). Если страница грузится без 403 — всё в порядке.
- Страницу входа
/wp-admin/— должна открываться форма авторизации - Любую внутреннюю страницу (пост или страницу услуги)
robots.txtвашего сайта — не должен отдавать 403
На хостингах Beget после правок .htaccess нужно подождать 1-2 минуты — кеш сервера обновляется не сразу. На Timeweb и Reg.ru изменения применяются моментально.
Когда способ не сработает
На Nginx. Если сайт на хостинге с Nginx (частный сервер или некоторые тарифы Beget/Timeweb), то .htaccess не читается вообще. Проблему нужно решать через server-блок — обратитесь в поддержку хостинга или к нам.
После переезда на Cloudflare. Cloudflare Flexible SSL ломает редиректы WordPress. Проверьте, не блокирует ли Cloudflare запросы через WAF. Временно переключите режим SSL на Full (strict) в панели Cloudflare.
Мы писали об этом в статье «Cloudflare ломает админку WordPress — как исправить».
Проблема на уровне хостинга. Beget, Timeweb и Reg.ru иногда блокируют IP из-за превышения лимитов CPU или inode. Зайдите в панель хостинга — там будет уведомление о блокировке.
Если ничего не помогло. Возможна 403 на уровне сервера: исчерпаны ресурсы, ошибка в конфигурации PHP-FPM или блокировка на стороне провайдера. Тут без поддержки хостинга или специалиста уже не обойтись.
Частые вопросы
Deny from all — удалите его.Ошибка 403 на WordPress не уходит?
Диагностирую и исправляю за 1 час. Удалённый доступ или подскажу через Telegram.