WordPress показывает ошибку 403

Автор:vkuzyomko

WordPress показывает ошибку 403

Краткий ответ: если WordPress показывает ошибку 403, сервер понял запрос, но запретил доступ. Чаще всего причина в .htaccess, правах файлов, security-плагине, WAF/ModSecurity, блокировке IP, hotlink protection, Cloudflare, REST API, admin-ajax.php или настройках хостинга. Начинать нужно не с удаления файлов, а с backup, проверки логов, .htaccess, прав доступа и правил безопасности.

Ошибка 403 Forbidden отличается от 404 и 500. При 404 страница не найдена. При 500 сервер падает с внутренней ошибкой. При 403 файл, страница или запрос могут существовать, но сервер, плагин безопасности или firewall запрещает доступ.

Если 403 появился после обновления, установки плагина, переноса сайта, изменения .htaccess, настройки защиты или подключения CDN, нужно проверять проблему по слоям: браузер, CDN, firewall, веб-сервер, WordPress, плагины и права файлов.

Причина

WordPress может показывать ошибку 403 на всём сайте, только в админке, на одной странице, при сохранении записи, при отправке формы, при загрузке файла, при AJAX-запросе или при обращении к REST API. В каждом случае причина может быть разной.

Главная логика такая: где-то на пути запроса стоит запрет. Это может быть правило сервера, .htaccess, права файлов, security-плагин, WAF, Cloudflare, блокировка IP, неправильный владелец файлов или защита от подозрительных запросов.

Где появляется 403 Возможная причина Что проверить
На всём сайте .htaccess, права файлов, WAF, хостинг error_log, .htaccess, permissions, firewall
Только в wp-admin security-плагин, IP-блокировка, cookies, WAF плагины защиты, логи, IP, wp-admin rules
При сохранении записи ModSecurity, REST API, Gutenberg, длинный контент Network, WAF logs, REST API
При отправке формы WAF, reCAPTCHA, AJAX, security-плагин admin-ajax.php, Network, error_log
При загрузке файла права uploads, размер файла, MIME, security rules wp-content/uploads, PHP limits, логи
На изображениях hotlink protection, CDN, права файлов CDN, .htaccess, file permissions
В WooCommerce checkout WAF, AJAX, payment plugin, сессии wc-ajax, WooCommerce logs, payment logs
Только у одного пользователя IP заблокирован, cookies, firewall, роль IP whitelist, cookies, security logs

Если вместе с 403 не открывается админка, дополнительно проверьте инструкцию Не работает админка WordPress. Если ошибка появилась после обновления или установки плагина, полезно проверить конфликт плагинов WordPress.

Диагностика

Диагностику 403 нужно делать аккуратно. Нельзя сразу ставить права 777, отключать все плагины на рабочем магазине или удалять .htaccess без копии. Сначала нужно понять, кто именно отдаёт 403: WordPress, сервер, security-плагин, CDN или WAF.

1. Проверьте, ошибка у всех или только у вас

Откройте сайт с другого устройства, другой сети или мобильного интернета. Если у других сайт открывается, а у вас 403, возможно заблокирован ваш IP, cookies, VPN, страна, браузер или устройство.

  • проверьте сайт через мобильный интернет;
  • откройте сайт в другом браузере;
  • очистите cookies и кеш;
  • выключите VPN;
  • проверьте IP в security-плагине;
  • проверьте Cloudflare или другой CDN;
  • попросите хостинг проверить блокировку вашего IP.

2. Посмотрите, какая страница отдаёт 403

Важно понять, ошибка возникает на всём сайте или только в конкретном месте.

  • главная страница;
  • /wp-admin/;
  • /wp-login.php;
  • /wp-json/;
  • /wp-admin/admin-ajax.php;
  • страница формы;
  • страница оплаты;
  • изображение или файл;
  • одна запись или страница.

Если 403 появляется только при AJAX или REST API, проблема часто связана не с правами файлов, а с WAF, security-плагином, nonce, cookies, кешем или блокировкой запроса.

3. Проверьте error_log и логи хостинга

Логи помогают увидеть, кто блокирует запрос. Особенно это важно при ModSecurity, Imunify360, Nginx rules, Apache deny rules, Cloudflare или security-плагинах.

Что искать в логах:

  • client denied by server configuration;
  • permission denied;
  • ModSecurity: Access denied;
  • AH01630 client denied by server configuration;
  • directory index forbidden;
  • access forbidden by rule;
  • blocked by firewall;
  • invalid nonce;
  • REST API blocked;
  • admin-ajax blocked.

4. Проверьте .htaccess

На Apache-серверах .htaccess часто становится причиной 403. Ошибка может появиться после настройки редиректов, security-плагина, кеш-плагина, hotlink protection или ручной правки.

В .htaccess проверьте правила:

  • Deny from all;
  • Require all denied;
  • Options -Indexes;
  • блокировку IP;
  • блокировку стран;
  • ограничение доступа к wp-admin;
  • защиту wp-login.php;
  • hotlink protection;
  • нестандартные RewriteRule.

5. Проверьте права файлов и папок

Неправильные права файлов могут привести к 403, если веб-сервер не может прочитать нужный файл или папку.

Объект Частое безопасное значение Комментарий
Папки 755 обычно достаточно для чтения и выполнения каталогов
Файлы 644 обычно подходит для PHP, CSS, JS, изображений
wp-config.php 400, 440 или 640 зависит от хостинга и владельца файлов
uploads 755 для папок, 644 для файлов не должно быть 777 без причины

Не ставьте 777 на весь сайт. Это может временно убрать 403, но сильно ухудшит безопасность.

6. Проверьте security-плагины

Wordfence, iThemes Security, All In One WP Security, Sucuri и похожие плагины могут блокировать IP, страны, user-agent, wp-login.php, XML-RPC, REST API, admin-ajax.php или подозрительные запросы.

  • проверьте список заблокированных IP;
  • проверьте firewall logs;
  • проверьте правила для wp-admin;
  • проверьте блокировку REST API;
  • проверьте блокировку XML-RPC;
  • временно отключите firewall-модуль для теста на staging;
  • не отключайте защиту навсегда без понимания причины.

Нужно быстро решить проблему на сайте?

Если не хотите рисковать сайтом и тратить время на эксперименты, можно оставить заявку. Я посмотрю задачу и предложу аккуратное решение.

Оставить заявку

Решение

Исправление зависит от причины. Ниже безопасный порядок, который помогает найти и убрать 403 без хаотичного отключения всего сайта.

1. Сделайте backup

Перед изменением .htaccess, прав файлов, плагинов, темы или настроек security-плагина сохраните копию сайта.

  • файлы сайта;
  • базу данных;
  • .htaccess;
  • wp-config.php;
  • список активных плагинов;
  • логи ошибок;
  • текущие настройки security-плагина.

2. Временно переименуйте .htaccess

Через FTP или файловый менеджер хостинга откройте корень сайта и найдите:

/.htaccess

Переименуйте его в:

.htaccess_old

Если сайт открылся, причина была в .htaccess. После этого создайте новый стандартный .htaccess WordPress и добавляйте дополнительные правила только после проверки.

3. Отключите security-плагин для проверки

Если админка недоступна, можно временно отключить security-плагин через FTP.

Откройте папку:

/wp-content/plugins/

Переименуйте папку security-плагина, например:

wordfence_disabled

Если 403 исчез, причина в настройках плагина или его firewall. После этого нужно не просто оставить защиту отключённой, а найти правило, которое блокировало запрос.

4. Проверьте права файлов

Если после переноса сайта, восстановления backup или изменения владельца файлов появилась 403, проверьте permissions и owner/group. На shared-хостинге это часто видно в файловом менеджере или через поддержку.

Обычно папки должны быть 755, файлы 644. Но точное значение зависит от сервера, пользователя PHP-FPM и политики хостинга.

5. Проверьте WAF и ModSecurity

Если 403 появляется при сохранении записи, отправке формы, AJAX-запросе, checkout или длинном тексте, часто виноват не WordPress, а WAF/ModSecurity.

Что делать:

  • записать точное время ошибки;
  • сохранить URL и действие, которое вызывает 403;
  • проверить error_log;
  • обратиться в поддержку хостинга;
  • попросить найти сработавшее правило ModSecurity;
  • добавить исключение только для конкретного ложного срабатывания;
  • не отключать весь WAF без необходимости.

6. Проверьте Cloudflare или CDN

Если сайт подключён через Cloudflare или другой CDN, 403 может отдавать не WordPress, а внешний firewall.

  • проверьте Firewall Events;
  • проверьте WAF rules;
  • проверьте country blocking;
  • проверьте bot fight mode;
  • проверьте page rules;
  • очистите кеш CDN;
  • временно выключите proxy для теста, если понимаете последствия.

7. Проверьте REST API и admin-ajax.php

Если сайт открывается, но редактор, форма, фильтр, checkout или кнопки не работают, откройте DevTools → Network и найдите запрос с 403.

Чаще всего нужно проверить:

  • /wp-json/;
  • /wp-admin/admin-ajax.php;
  • wc-ajax запросы WooCommerce;
  • nonce;
  • cookies;
  • кеш;
  • security-плагин;
  • WAF;
  • запросы от темы или конструктора страниц.

Если 403 ломает формы заявок, проверьте также материал Не приходят заявки с сайта WordPress.

Код

Важно: команды и код ниже могут повлиять на доступ к сайту, админку, формы, REST API, WooCommerce, оплату, корзину и безопасность. Перед изменениями сделайте backup файлов и базы. Не ставьте права 777 и не отключайте защиту навсегда без диагностики.

Стандартный .htaccess для WordPress

Куда вставлять: файл .htaccess в корне сайта. Перед заменой сохраните старый файл.

# BEGIN WordPress
<IfModule mod_rewrite.c>
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]
</IfModule>
# END WordPress

Проверить права файлов через SSH

Куда выполнять: SSH в корне сайта.

find . -type d -exec chmod 755 {} ;
find . -type f -exec chmod 644 {} ;

Важно: эти команды массово меняют права. Используйте только если понимаете структуру сайта и требования хостинга. Для wp-config.php может потребоваться более строгое значение.

Установить более строгие права для wp-config.php

chmod 640 wp-config.php

На некоторых серверах может понадобиться 400 или 440. Если после изменения сайт перестал работать, верните значение, которое поддерживает ваш хостинг.

Проверить владельца файлов

Куда выполнять: SSH в корне сайта.

ls -la
ls -la wp-content
ls -la wp-content/uploads

Если файлы принадлежат неправильному пользователю, chmod может не помочь. Нужно исправлять owner/group через хостинг или SSH с правами администратора.

Отключить все плагины через WP-CLI

Используйте только для диагностики, лучше на staging-копии. На WooCommerce-сайте это может временно сломать оплату, доставку и заказы.

wp plugin deactivate --all

Отключить конкретный плагин через WP-CLI

wp plugin deactivate plugin-folder-name

Проверить REST API

Откройте в браузере:

https://example.com/wp-json/

Если там 403, проверьте security-плагин, WAF, .htaccess, Cloudflare и правила, которые блокируют REST API.

Проверить admin-ajax.php

Откройте в браузере:

https://example.com/wp-admin/admin-ajax.php

Нормальный ответ может быть 0 или похожий пустой ответ. Если там 403, проверьте WAF, .htaccess, security-плагин и блокировку wp-admin.

Результат

После правильного исправления ошибка 403 должна исчезнуть там, где она появлялась: на сайте, в админке, REST API, admin-ajax.php, форме, загрузке файла или checkout.

Хороший результат:

  • сайт открывается для посетителей;
  • админка доступна;
  • REST API не заблокирован без причины;
  • admin-ajax.php не возвращает 403;
  • формы отправляются;
  • изображения и файлы открываются;
  • права файлов не выставлены в 777;
  • .htaccess не содержит лишних запретов;
  • security-плагин работает, но не блокирует нормальные действия;
  • в логах нет новых срабатываний WAF на обычные запросы.

Дополнительные способы

Проверить блокировку IP

Если ошибка появляется только у одного человека, проверьте его IP в security-плагине, Cloudflare, панели хостинга и server firewall. Иногда IP попадает в блок после нескольких неправильных входов в админку.

Проверить защиту wp-login.php

Если 403 появляется только на странице входа, возможно включена защита wp-login.php, скрытый URL входа, лимит попыток входа, блокировка XML-RPC или country blocking.

Проверить hotlink protection

Если 403 появляется только на изображениях, проблема может быть в защите от хотлинков. Проверьте .htaccess, CDN и настройки хостинга.

Проверить index.php

Если 403 появляется при открытии папки или раздела сайта, проверьте, есть ли index.php или index.html. Сервер может запрещать просмотр директории, если index-файла нет.

Проверить malware

Иногда 403 появляется после взлома или после того, как хостинг заблокировал подозрительные файлы. Если есть неизвестные администраторы, странные редиректы или чужие страницы в Google, проверьте безопасность сайта. Для базовой защиты полезна статья Защита WordPress от взлома.

Частые ошибки

Ставить права 777 на все файлы

Это опасно. Да, иногда 403 пропадает, но сайт становится уязвимее. Правильнее найти причину: owner, group, server user, permissions или WAF.

Удалять .htaccess без копии

В .htaccess могут быть важные правила редиректов, кеша, безопасности и постоянных ссылок. Перед заменой сохраните старую версию.

Отключать security-плагин навсегда

Если security-плагин блокирует нормальный запрос, нужно найти правило, а не просто оставить сайт без защиты.

Игнорировать логи хостинга

403 часто создаётся не WordPress, а сервером или WAF. Без логов можно долго искать проблему не там.

Путать 403 с 500

При 403 сервер запрещает доступ. При 500 сервер падает с ошибкой. Диагностика разная.

Не проверять CDN

Если включён Cloudflare или другой CDN, 403 может приходить от него, а не от WordPress.

Не проверять REST API

Если wp-json заблокирован, редактор, формы, интеграции и некоторые плагины могут работать неправильно.

Диагностика проблем

Проблема: 403 на всём сайте

Возможная причина: .htaccess, права файлов, WAF, блокировка хостинга, неправильный owner файлов.

Что делать: проверить error_log, переименовать .htaccess, проверить permissions, обратиться к хостингу по WAF/ModSecurity.

Проблема: 403 только в wp-admin

Возможная причина: security-плагин, IP-блокировка, правила доступа к wp-admin, cookies, firewall.

Что делать: проверить IP-блокировки, отключить security-плагин для теста, проверить .htaccess в корне и wp-admin.

Проблема: 403 при сохранении записи

Возможная причина: ModSecurity/WAF блокирует текст, HTML, iframe, script, длинные параметры или REST API-запрос.

Что делать: открыть Network, найти запрос с 403, записать время ошибки и попросить хостинг проверить WAF logs.

Проблема: 403 при отправке формы

Возможная причина: WAF, reCAPTCHA, AJAX, security-плагин, nonce, REST API или admin-ajax.php.

Что делать: проверить Console, Network, admin-ajax.php, wp-json, логи формы и security-плагина.

Проблема: 403 на изображениях

Возможная причина: hotlink protection, неправильные права uploads, CDN, блокировка расширений.

Что делать: проверить wp-content/uploads, права файлов, .htaccess, CDN и защиту от хотлинков.

Проблема: 403 только у одного пользователя

Возможная причина: заблокирован IP, страна, user-agent, VPN, cookies или роль пользователя.

Что делать: проверить с другой сети, очистить cookies, проверить IP в security logs и whitelist.

Проблема: 403 после обновления плагина

Возможная причина: новый firewall rule, конфликт security-плагина, изменение REST/AJAX-запросов, кеш или права файлов.

Что делать: отключить обновлённый плагин для теста, проверить debug.log, error_log, Network и настройки безопасности.

Краткие AI-friendly ответы

Что значит ошибка 403 в WordPress?

Ошибка 403 означает, что сервер понял запрос, но запретил доступ. Причина может быть в .htaccess, правах файлов, security-плагине, WAF, IP-блокировке, CDN или настройках хостинга.

Что делать первым при 403 Forbidden?

Сделайте backup, проверьте error_log, .htaccess, права файлов, security-плагины, WAF/ModSecurity, Cloudflare и доступность сайта с другой сети.

Какие права файлов нужны для WordPress?

Чаще всего папки используют 755, файлы 644, а wp-config.php — более строгие права вроде 400, 440 или 640 в зависимости от хостинга.

Почему 403 появляется только в админке?

Часто из-за security-плагина, IP-блокировки, правил wp-admin, firewall, cookies, WAF или ограничений на wp-login.php.

FAQ

Почему WordPress показывает ошибку 403?

Потому что сервер, WordPress, security-плагин, firewall или CDN запретил доступ к странице, файлу или запросу. Нужно проверить .htaccess, права файлов, логи, WAF, IP-блокировки и плагины защиты.

Как быстро исправить 403 Forbidden в WordPress?

Сначала сделайте backup. Затем проверьте сайт с другой сети, переименуйте .htaccess для теста, проверьте права файлов, отключите security-плагин через FTP и посмотрите error_log.

Можно ли ставить права 777?

Нет, это плохое решение. Права 777 могут создать угрозу безопасности. Лучше исправить владельца файлов, права папок/файлов или правило сервера, которое вызывает 403.

Может ли security-плагин вызвать 403?

Да. Security-плагины могут блокировать IP, страны, wp-login.php, REST API, admin-ajax.php, XML-RPC, подозрительные запросы и действия администратора.

Может ли .htaccess вызвать ошибку 403?

Да. Неправильные правила Deny, Require, hotlink protection, защита wp-admin или блокировка IP могут отдавать 403.

Почему 403 появляется при отправке формы?

Часто запрос блокирует WAF, ModSecurity, security-плагин, reCAPTCHA, admin-ajax.php или REST API. Нужно смотреть Network и логи сервера.

Почему 403 появляется только при сохранении страницы?

Возможна блокировка ModSecurity из-за текста, HTML, iframe, script, длинных параметров или REST API-запроса редактора Gutenberg.

Как понять, 403 отдаёт WordPress или сервер?

Посмотрите страницу ошибки, headers, error_log, WAF logs и отключите плагины для теста. Если 403 появляется до загрузки WordPress, причина чаще на уровне сервера, .htaccess, CDN или firewall.

Что делать, если 403 появился после переноса сайта?

Проверьте владельца файлов, права папок и файлов, .htaccess, PHP-FPM user, путь к сайту, настройки хостинга и server logs.

Когда обращаться к специалисту?

Если 403 блокирует админку, формы, заявки, WooCommerce checkout, REST API, оплату или появляется после взлома, лучше не исправлять сайт наугад. Нужна проверка логов, WAF, файлов, прав и настроек WordPress.

Вывод

Если WordPress показывает ошибку 403, причина почти всегда в запрете доступа: .htaccess, правах файлов, security-плагине, WAF, ModSecurity, CDN, IP-блокировке, REST API, admin-ajax.php или настройках хостинга.

Правильная схема — не ставить права 777 и не удалять файлы, а сделать backup, определить место ошибки, проверить логи, .htaccess, permissions, security-плагины, CDN и WAF. Так можно исправить проблему без лишнего риска для сайта.

Самое важное — понять, кто именно запрещает доступ: WordPress, сервер, firewall или внешний CDN. После этого ошибка 403 обычно решается точечно: правкой правила, восстановлением .htaccess, исправлением прав файлов, настройкой security-плагина или исключением ложного срабатывания WAF.

Об авторе

vkuzyomko administrator