Ошибка 403 Forbidden — одна из наиболее распространенных проблем в WordPress. Она означает, что сервер получил запрос пользователя, однако отказал в доступе к странице или файлу. В отличие от ошибки 404, страница существует, но веб-сервер запрещает ее открывать. Причин возникновения ошибки может быть множество: неправильные права доступа, поврежденный файл .htaccess, конфликт плагинов безопасности, настройки Cloudflare, ModSecurity, WAF, ограничения хостинга или ошибки в конфигурации сервера. В этом руководстве рассмотрим все возможные причины появления ошибки 403 в WordPress и способы их устранения с примерами.

Как выглядит ошибка 403

В зависимости от сервера сообщение может отличаться:
  • 403 Forbidden
  • Access Denied
  • You don't have permission to access this resource.
  • Forbidden
  • HTTP Error 403
  • Access to this resource on the server is denied.
Иногда ошибка появляется только в административной панели WordPress, иногда — только на отдельных страницах сайта.

Основные причины ошибки 403

  • неверные права доступа к файлам;
  • неправильный файл .htaccess;
  • конфликт плагинов безопасности;
  • блокировка Cloudflare;
  • правила ModSecurity;
  • неверная настройка Nginx или Apache;
  • ограничения хостинга;
  • блокировка IP-адреса;
  • неправильные правила Rewrite.

Шаг 1. Очистите кэш

Перед поиском проблемы необходимо очистить:
  • кэш браузера;
  • кэш WordPress;
  • кэш CDN;
  • кэш Cloudflare;
  • кэш сервера.
Иногда после обновления сайта сервер продолжает отдавать старую страницу с ошибкой.

Как исправить ошибку 403 WordPress

Шаг 2. Проверьте права доступа

Самая распространенная причина — неправильные права файлов. Рекомендуемые значения:
Объект Права
Папки 755
Файлы 644
wp-config.php 600 или 640
Используя SSH:
find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; 
Или вручную через FTP-клиент.

Шаг 3. Проверьте владельца файлов

После переноса сайта владельцем файлов может стать другой пользователь. Для Linux:
sudo chown -R www-data:www-data /var/www/html 
На большинстве виртуальных хостингов этот параметр изменить нельзя — необходимо обратиться в поддержку.

Шаг 4. Проверьте файл .htaccess

Очень часто ошибка появляется после установки плагинов безопасности. Переименуйте файл:
.htaccess 
например в
.htaccess_old 
После этого откройте сайт. Если ошибка исчезла — создайте новый файл. Стандартный .htaccess 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> 

Шаг 5. Отключите плагины

Иногда сайт блокирует один из плагинов:
  • Wordfence
  • All In One WP Security
  • iThemes Security
  • Sucuri
  • Shield Security
Если вход в админку невозможен, переименуйте каталог:
/wp-content/plugins/ 
например:
plugins_old 
После проверки верните название обратно.

Шаг 6. Проверьте тему

Редко причиной становится активная тема. Через FTP переименуйте:
/wp-content/themes/mytheme 
WordPress автоматически активирует стандартную тему.

Шаг 7. Проверьте файл wp-config.php

Иногда проблема появляется после ручного редактирования. Убедитесь, что файл начинается так:
<?php define('DB_NAME', 'database'); define('DB_USER', 'user'); define('DB_PASSWORD', 'password'); 
Лишние пробелы или символы перед <?php недопустимы.

Шаг 8. Проверьте ModSecurity

Некоторые правила ModSecurity ошибочно считают запросы WordPress опасными. Типичные признаки:
  • ошибка только при загрузке изображений;
  • ошибка после сохранения записи;
  • ошибка REST API;
  • ошибка AJAX.
В этом случае необходимо временно отключить ModSecurity через панель хостинга либо попросить службу поддержки исключить правило.

Шаг 9. Проверьте Cloudflare

Cloudflare может заблокировать:
  • IP;
  • страну;
  • User-Agent;
  • ботов;
  • POST-запросы.
Проверьте:
  • Firewall Rules;
  • Security Events;
  • WAF;
  • Bot Fight Mode.

Шаг 10. Проверьте robots.txt

Иногда владельцы случайно запрещают доступ. Пример неправильного файла:
User-agent: * Disallow: / 
Минимальный вариант:
User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml 

Шаг 11. Проверьте конфигурацию Apache

Ошибка может быть вызвана директивой:
Deny from all 
или
Require all denied 
Правильный вариант:
Require all granted 

Шаг 12. Проверьте Nginx

Иногда ошибка появляется после неправильной настройки location. Пример:
location / { try_files $uri $uri/ /index.php?$args; } 
Также убедитесь, что отсутствуют правила:
deny all; 

Шаг 13. Проверьте XML-RPC

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

Шаг 14. Проверьте REST API

Иногда ошибка возникает только для REST API. Проверить можно по адресу:
https://example.com/wp-json/ 
Если возвращается 403, необходимо проверить плагины безопасности и настройки сервера.

Шаг 15. Посмотрите журнал ошибок

Наиболее полезные логи:
  • error.log
  • Apache Error Log
  • Nginx Error Log
  • PHP Error Log
Пример записи:
client denied by server configuration 
или
access forbidden by rule 

Включение режима отладки WordPress

Добавьте в wp-config.php:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); 
После этого ошибки будут записываться в:
/wp-content/debug.log 

Если ошибка появилась после обновления

Проверьте:
  • совместимость PHP;
  • совместимость плагинов;
  • обновление темы;
  • правильность .htaccess;
  • конфигурацию сервера.

Профилактика ошибки 403

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

Метки: ,