Ошибка 403 Forbidden, в отличие от 404, не означает, что страница не найдена. Сервер нашёл запрошенный адрес, но решил, что показывать его вам нельзя. Такое решение может приниматься на разных уровнях: права в файловой системе, настройки веб-сервера, правила .htaccess, плагины безопасности или блокировка IP на уровне сети. Поэтому при исправлении 403 важно сначала понять, у кого и на каком адресе возникает ошибка — это сильно сужает круг причин.
У кого и где появляется ошибка
Начните с простых вопросов. Ошибка на всём сайте или только в одной папке, например /wp-admin/ или /uploads/? Она у всех пользователей или только на вашем компьютере и в офисной сети? Попробуйте открыть сайт из другой сети, например через мобильный интернет. Если через мобильный интернет сайт открывается, а в офисном Wi-Fi выдаёт 403, причина почти наверняка в блокировке IP: система защиты или файрвол могли пометить ваш адрес как подозрительный.
Если ошибка только на главной странице, а внутренние работают, чаще всего проблема в индексном файле. Если только в определённой папке — проверяйте .htaccess и права именно в ней.
Нет индексного файла
Когда вы открываете example.uz, сервер ищет в корне сайта файл index.php или index.html. Если такого файла нет, а вывод содержимого каталога отключён, сервер вернёт 403. Обычно так бывает, когда файлы загружены не в ту папку: например, после распаковки архива всё оказалось в www/example.uz/site/, а в корне пусто. Откройте корень сайта в файловом менеджере и убедитесь, что индексный файл лежит именно там.
Включать листинг каталогов — не решение: это лишь снижает безопасность. Правильно перенести файлы в нужное место или создать индексный файл.
Права на файлы и папки
Если веб-сервер не может прочитать файл, он возвращает 403. Обычные правильные права: 755 для папок и 644 для файлов. Если на папке стоит 700 или на файле 600, а веб-сервер работает от другого пользователя, доступ будет запрещён. Некоторые FTP-клиенты и распаковка архивов выставляют права неправильно. Проверить и восстановить их можно по SSH:
ls -la ~/www/example.uz
find ~/www/example.uz -type d -exec chmod 755 {} \;
find ~/www/example.uz -type f -exec chmod 644 {} \;
Важен и владелец файла. Если файлы созданы от имени root или другого пользователя, пользователь сайта может не иметь к ним доступа. В файловом менеджере ISPmanager видны владелец и права, и изменить их можно прямо там.
Запрещающие правила в .htaccess
В .htaccess могут быть правила, ограничивающие доступ, и иногда они срабатывают там, где вы этого не ждёте. Например, ограничение по IP для защиты админки после смены IP у провайдера блокирует и вас самих. В Apache 2.4 такие правила выглядят так:
<Files "wp-login.php">
Require ip 203.0.113.10
</Files>
# или закрыть всю папку
Require all denied
В старом синтаксисе Apache используются строки Order deny,allow и Deny from all. Найдите такие строки и проверьте, соответствуют ли они текущей ситуации. Для проверки файл можно временно переименовать:
mv .htaccess .htaccess.off
Если после этого 403 исчезла, причина точно в этом файле. Учтите, что .htaccess может лежать не только в корне, но и во вложенных папках, и он переопределяет правила уровнем выше. Например, если .htaccess в папке uploads запрещает выполнение PHP — это правильная защита; но если он закрывает и изображения, сайт откроется без картинок.
Плагины безопасности и файрвол
Плагины безопасности WordPress временно блокируют IP, с которого много раз вводили неверный пароль, и это тоже может выглядеть как 403. Например, на сайте частной клиники в Самарканде администратор несколько раз ввёл старый пароль с нового телефона, плагин заблокировал IP офиса, и сотрудники не смогли попасть в админку. В такой ситуации помогает очистка списка заблокированных IP в настройках плагина или временное переименование папки плагина.
На уровне сервера тоже работают системы защиты: слишком частые запросы или запросы с подозрительными шаблонами (например, SQL-команды в URL) могут блокироваться автоматически. Если вы считаете, что заблокирован ваш собственный IP, сообщите его в поддержку — такие блокировки клиенту не видны.
Доступ к определённым типам файлов
Иногда 403 появляется только на отдельных файлах, и это нормально. На многих серверах доступ через браузер к .env, .git, архивам резервных копий и конфигурационным файлам намеренно закрыт, потому что в них хранятся пароли и секретные ключи. Если вы пытаетесь открыть такой файл в браузере и получаете 403, значит, защита работает. Такие файлы нужно скачивать через FTP или файловый менеджер.
Порядок проверки
Чтобы быстро найти причину, удобно идти по шагам:
- Откройте сайт из другой сети (мобильный интернет), чтобы исключить блокировку IP.
- Проверьте наличие индексного файла в корне сайта.
- Приведите права к 755/644 и проверьте владельца.
- Временно отключите .htaccess и посмотрите на результат.
- Временно отключите плагины безопасности.
- Поищите в журнале ошибок сайта записи вроде «client denied».
Журнал ошибок часто даёт точный ответ: в логе Apache указано, из-за какого правила или каких прав доступ был отклонён. Если после всех шагов причина не найдена, оставьте тикет в разделе поддержки кабинета sayt.uz, указав адрес страницы и ваш IP.