Ошибка 403 Forbidden: что значит и как исправить
403 Forbidden — сервер понял запрос, но выполнять его не стал: доступ к странице или файлу запрещён. Для посетителя это тупик — повторный вход не поможет. Для владельца сайта 403 обычно означает одно из пяти: нет индексного файла, у nginx нет прав на файлы, сработал запрет в настройках, не найден файл паролей или доступ закрыла защита хостинга.
Содержание 9
Что означает код 403
По стандарту HTTP код 403 значит: сервер понял запрос, но отказывается его выполнять. Если в запросе были логин и пароль или токен, сервер считает их недостаточными, и повторять запрос с теми же данными бессмысленно. Причину сервер может объяснить в тексте ответа, а может и скрыть: стандарт разрешает вместо 403 ответить 404, чтобы не раскрывать, что ресурс вообще существует.
Чем 403 отличается от 401: при 401 сервер не знает, кто вы, и вход может помочь. При 403 вход ничего не изменит.
Если вы посетитель
- Проверьте адрес. 403 бывает, если открыть каталог без файла страницы — например, адрес оборвался на /images/.
- Если вы вошли на сайт, выйдите и войдите снова: у вашей учётной записи может не хватать прав.
- Обновите страницу через несколько минут. Защита сайта могла временно заблокировать слишком частые запросы.
- Если ошибка не уходит — это решение или ошибка владельца сайта. Напишите ему, какую страницу вы открывали и когда.
Пять причин 403 в nginx
Причину обычно видно в журнале ошибок — в Ubuntu и Debian это /var/log/nginx/error.log. Ищите строку с адресом, который выдал 403.
| Строка в журнале | Что случилось |
|---|---|
| directory index of "/var/www/site/" is forbidden | Открыли каталог, а в нём нет индексного файла (index.html, index.php), и показ списка файлов выключен |
| open() "/var/www/site/file.html" failed (13: Permission denied) | У nginx нет прав прочитать файл или пройти по каталогам на пути к нему |
| "/var/www/site/" is forbidden (13: Permission denied) | У nginx нет прав на сам каталог |
| access forbidden by rule | Сработал запрет deny в настройках |
| open() "/etc/nginx/.htpasswd" failed (2: No such file or directory) | Для раздела включён вход по паролю, а файла с паролями нет |
Если в журнале ничего нет, 403 мог вернуть не nginx, а программа сайта (PHP, приложение) или посредник перед сервером — CDN или защита от атак. Это видно по тексту страницы ошибки и заголовку Server в ответе.
Как исправить
Нет индексного файла. Проверьте, что в каталоге сайта есть index.html или index.php и что он указан в директиве index. Для сайта на PHP:
index index.php index.html;Список файлов каталога nginx показывает только при autoindex on — по умолчанию выключено, и включать это для сайта не стоит.
Нет прав. Процесс nginx (в Ubuntu — пользователь www-data) должен читать файлы и проходить по всем каталогам на пути к ним. Права по всей цепочке покажет команда namei:
namei -l /var/www/site/index.htmlОбычно хватает прав 644 на файлы и 755 на каталоги. Каталог с правом 700 или 750 в начале пути (например, домашняя папка пользователя) закрывает всё, что лежит внутри, — даже если у самих файлов права правильные.
Запрет в настройках. Найдите директивы deny в конфигурации сайта:
grep -rn "deny" /etc/nginx/Правило deny all ставят, например, на служебные файлы вроде .htaccess или .git — это нормально. Плохо, если оно случайно закрывает нужный раздел или ваш IP-адрес.
Файл паролей. Проверьте путь в директиве auth_basic_user_file. Подробнее — в разборе ошибки 401.
После любых правок: sudo nginx -t, затем sudo systemctl reload nginx.
На обычном хостинге
Самые частые причины там те же: нет индексного файла в корне сайта, права на файлы после загрузки по FTP или запрет в .htaccess. Права меняют в файловом менеджере панели или в FTP-клиенте. Если всё в порядке, а 403 остаётся, напишите в поддержку адрес страницы и время: доступ могла закрыть защита хостинга.
Как 403 влияет на поиск
Яндекс советует: если страница должна быть в поиске, откройте к ней доступ — страницу с ответом 403 робот не проиндексирует. И наоборот, ответ 403, 404 или 410 — один из способов убрать страницу из поиска: по справке Яндекса, такие страницы выпадают из поисковой базы в течение недели после того, как робот увидит ответ.
Чем 403 отличается от соседних кодов
| Код | Когда возникает |
|---|---|
| 401 | Нужно войти: сервер не знает, кто вы |
| 403 | Доступ запрещён, вход не поможет |
| 404 | Страницы нет — или сервер не хочет признаваться, что она есть |
| 405 | Страница есть, но не принимает этот метод запроса |
| 429 | Слишком много запросов: доступ ограничен на время |
Источники
- RFC 9110, раздел 15.5.4 — определение кода 403.
- Документация nginx: index, autoindex и allow/deny.
- Исходный код nginx — тексты сообщений о 403 в модулях core, static, index и access.
- Яндекс Вебмастер: коды ответа HTTP и как удалить страницы из поиска.
Сверено 6 октября 2026 года.
Что почитать дальше
- Ошибка 404 Not Found — когда страницы нет.
- Ошибка 401 Unauthorized — когда нужно войти.
- Как разместить сайт на VPS — настройка nginx и прав на файлы с нуля.
- Что делать, если хостинг лежит — порядок проверки, когда сайт не открывается.
Проверено и обновлено: 07.10.2026