О чём сообщает 405
Код 405 означает, что ресурс существует, но метод HTTP, которым вы к нему обратились, для него не разрешён. Методы — это GET, POST, PUT, DELETE и другие. Например, страница принимает только чтение через GET, а форма пытается отправить данные через POST. Сервер должен прислать заголовок Allow со списком допустимых методов, и он помогает быстро найти решение.
Это не «не найдено»: адрес правильный. Ошибка в способе обращения.
Если вы разработчик, добавьте в тесты проверку допустимых методов для каждого маршрута: такая проверка ловит подобные ошибки до выхода на рабочий сервер.
Типичные причины у посетителя
Обычный пользователь встречает 405 после отправки формы: сайт неправильно настроен, и обработчик формы не принимает POST. Иногда причина в устаревшей странице из кеша: форма ведёт на адрес, изменившийся после обновления сайта. Ещё бывает, что ссылка предназначалась для программного вызова API, а вы открыли её в браузере методом GET.
Часто ошибка возникает после переноса сайта на другой хостинг или перехода на защищённый адрес, если переадресация меняет метод запроса. Плагины кеширования и защитные модули также иногда отвергают методы.
Что попробовать посетителю
Вернитесь на страницу с формой, обновите её без кеша и отправьте форму заново. Откройте страницу в другом браузере или в приватном окне. Если вы вручную набирали адрес, найдите нужную страницу через меню сайта: вероятно, вы открыли адрес, не предназначенный для просмотра.
Если ошибка появляется после отправки формы на постоянной основе, сообщите владельцу сайта: исправить это со стороны посетителя нельзя. Укажите адрес страницы, действия и время. Не отправляйте форму многократно: можно случайно создать дубликаты, если часть запросов всё же пройдёт.
Проверка для разработчика
Посмотрите заголовок Allow в ответе и сверьте с методом, который отправляет клиент. Проверьте маршруты приложения: объявлен ли обработчик для нужного метода. Проверьте конфигурацию веб-сервера: правила, ограничивающие методы, например для статических каталогов, куда пытаются отправлять POST.
При перенаправлениях помните разницу: временные и постоянные переадресации ведут себя по-разному в отношении метода. Если сервис за обратным прокси, убедитесь, что тот пропускает нужные методы. Для запросов из браузера с другого источника проверьте предварительный запрос OPTIONS: если сервер его отвергает, приложение получит 405.
Как не спутать с другими кодами
Код 404 сообщает, что адреса нет, 403 — что доступ запрещён, 501 — что сервер вообще не поддерживает такой метод. 405 говорит о том, что метод известен серверу, но недопустим именно для этого адреса. Эта тонкость помогает искать причину: при 405 обычно виновата конфигурация маршрутов или правил сервера, а не права и не недоступность сайта. Заголовок Allow в ответе обычно прямо называет допустимые методы, и это самая быстрая подсказка.
Веб-серверы, CMS и ограничения методов
В конфигурации веб-сервера можно ограничить допустимые методы для каталога или адреса. Иногда такое правило сохраняется после миграции или копируется из инструкции по безопасности, и внезапно перестают работать формы обратной связи или API. Также популярны модули защиты, которые по умолчанию разрешают только GET и POST и отвергают PUT и DELETE, необходимые приложению.
В системах управления сайтом ошибка 405 часто появляется после смены адресов постоянных ссылок или включения кеширующих плагинов, которые пытаются отдать статическую копию вместо обработки POST. Исключите адреса форм из кеширования. Если хостинг предоставляет панель, посмотрите журнал ошибок и правила безопасности: там нередко видно конкретное срабатывание.
Порядок действий коротко: Открыть страницу заново и повторить действие; проверить, не использован ли адрес не по назначению; сообщить владельцу, если ошибка на форме. Разработчику: посмотреть заголовок Allow, маршруты приложения, правила веб-сервера и прокси, поведение переадресаций и запрос OPTIONS. Исключить формы из кеширования и убедиться, что после миграции адреса обработчиков не изменились.