Коротко. 405 Method Not Allowed означает: адрес существует, но сервер не разрешает для него этот метод запроса. Чаще всего форма отправляет POST туда, где принимают только GET, или API ждёт другой метод. В ответе должен быть заголовок Allow — в нём перечислены разрешённые методы.
Как читать материал. Сначала проверяем метод и заголовок Allow, потом правим форму, маршрут или конфиг сервера. Нейросеть помогает разобрать запрос и конфиг, но результат проверяется командой и в браузере.
Что означает ошибка 405
Метод — это часть HTTP-запроса: GET, POST, PUT, DELETE, HEAD. Сервер знает такой метод, но для конкретного адреса он не предусмотрен.
По RFC 9110 сервер обязан вернуть в 405 заголовок Allow со списком разрешённых методов. Если заголовка нет, сервер нарушает протокол. На практике так бывает.
405, 404 и 403: в чём разница
| Код | Что означает | Пример |
|---|---|---|
| 404 Not Found | Адреса нет | Опечатка в URL |
| 405 Method Not Allowed | Адрес есть, метод не разрешён | POST на статичную страницу |
| 403 Forbidden | Метод разрешён, но доступ закрыт | Нет прав на раздел |
405 не говорит, что страницы нет. Она говорит, что вы постучались не тем способом.
Почему появляется 405
- Форма отправляет POST на статичный HTML. Веб-сервер отдаёт файл только по GET и HEAD.
- Ошибка в атрибуте формы. Например,
method=“post”там, где обработчик ждёт GET. - API принимает только один метод. Эндпоинт создан для POST, а клиент делает PUT.
- WAF или CDN блокирует метод. Защита от ботов может запрещать PUT, DELETE и нестандартные методы.
- nginx ограничивает методы. Директива
limit_exceptразрешает только GET и HEAD. - CMS или плагин. Маршрут существует, но обработчик не зарегистрировал метод.
Как проверить
Сначала посмотрите на запрос и ответ:
curl -i -X POST https://site.ru/contact
В ответе ищите строку Allow: GET, HEAD. Она показывает, что сервер готов принять. Если заголовка нет, проверьте конфиг и логи.
В браузере откройте DevTools → Network, найдите запрос формы и посмотрите Method и Status. Часто видно, что форма уходит на другой URL или метод меняется после редиректа.
Allow: он перечисляет методы, которые сервер принимает.Классический путь. Снимите запрос через curl -i, проверьте метод, URL и Allow.
С нейросетью. Отдайте HTML формы и фрагмент конфига, попросите найти несоответствие.
Вот HTML формы и блок location из nginx. Найди, почему запрос получает 405:
метод формы, адрес action, разрешённые методы. Предложи минимальную правку.
Не меняй URL и не добавляй новые маршруты без объяснения.
Проверка. После правки повторите curl -i -X POST и убедитесь, что код стал 200 или 302, а не 405.
Как исправить
| Причина | Что делать |
|---|---|
| POST на статичную страницу | добавить обработчик или вернуть форме GET |
| Неверный method в форме | привести атрибут в соответствие с обработчиком |
| API ждёт другой метод | исправить клиент или добавить метод в маршрут |
| nginx отклоняет метод | проверить limit_except и не путать 403 с 405 |
| WAF блокирует PUT/DELETE | добавить правило исключения для доверенного сценария |
| Метод не зарегистрирован в CMS | проверить маршруты и плагины |
Пример nginx: разрешаем только GET и HEAD. Остальные методы nginx отклонит; по умолчанию это 403, а не 405.
location /static/ {
limit_except GET HEAD {
deny all;
}
}
Для API, наоборот, метод добавляют в приложение, а не в веб-сервер. Правка конфига не создаст обработчик.
Влияет ли 405 на SEO
Googlebot и Яндексбот запрашивают страницы методом GET. Если GET на обычной странице возвращает 405, робот не получит HTML: страница может выпасть из обхода.
Если 405 стоит только на POST-формах и API, на индексацию это не влияет. Но форма, которая не работает, теряет заявки — это уже бизнес-потери.
Где помогает нейросеть
| Задача | Что делает модель | Что проверять руками |
|---|---|---|
| Разбор формы | находит несоответствие method и action | фактический запрос в DevTools |
| Конфиг nginx | предлагает блок limit_except | синтаксис через nginx -t |
| Логи | группирует 405 по URL и методам | реальные методы из лога |
| Письмо разработчику | описывает воспроизведение | код и заголовки ответа |
Частые ошибки
- Менять URL, хотя проблема в методе.
- Разрешать все методы подряд ради быстрого результата.
- Считать 405 «ошибкой SEO» и не проверять форму.
- Игнорировать заголовок
Allow. - Править только фронтенд, когда метод не поддерживает бэкенд.
- Забывать про CDN и WAF перед сервером.
Вопросы
405 — ошибка клиента или сервера?
Формально 4xx: сервер считает, что клиент использовал неподходящий метод. Но исправлять часто приходится сайт: форму, маршрут или конфиг.
Чем 405 отличается от 404?
404 — адреса нет. 405 — адрес есть, но метод не разрешён.
Влияет ли 405 на индексацию?
Если код получает GET на обычной странице, да: робот не увидит содержимое. Для POST-форм и API влияния на индекс нет.
Может ли нейросеть исправить 405?
Она находит несоответствие в коде и конфиге, но применить правку и проверить ответ нужно на сервере.
Связанные материалы
Источники
Официальные документы 5
- RFC 9110: 405 Method Not Allowedrfc-editor.org
- MDN: 405 Method Not Alloweddeveloper.mozilla.org
- MDN: методы HTTPdeveloper.mozilla.org
- nginx: limit_exceptnginx.org
- Google Search Central: HTTP status codesdevelopers.google.com