8 (812) 425-62-05

Ошибка 405 Method Not Allowed — что это значит и как исправить

~5 минут на чтение
Содержание
Подробнее

Что означает ошибка 405 Method Not Allowed

Ошибка 405 Method Not Allowed относится к категории клиентских ошибок (HTTP-коды 4xx). Она возникает в том случае, когда веб-сервер получил запрос от пользователя, но метод HTTP-запроса (например, GET или POST) не поддерживается для данного ресурса.

Например:

  • пользователь пытается отправить данные через POST-запрос на страницу, которая принимает только GET-запросы;
  • разработчик настроил маршрутизацию так, что определённый метод «запрещён» для выбранного URL;
  • сервер блокирует попытку выполнить неподдерживаемый метод из соображений безопасности.

По сути, ошибка 405 означает: «Сервер работает, страница существует, но вы обращаетесь к ней неправильным способом».

Когда возникает ошибка

  • На стороне пользователя: при вводе некорректного адреса или использовании формы/ссылки с неправильным методом запроса.
  • На стороне сервера: при неверной конфигурации правил маршрутизации, .htaccess, nginx.conf или CMS.

Как выглядит ошибка в разных системах

Сообщение об ошибке может отличаться в зависимости от браузера, CMS или сервера:

  • В Google Chrome — «405. That’s an error. The request method is not allowed».
  • В Firefox — «405 Method Not Allowed».
  • В WordPress — «Method Not Allowed. The requested method POST is not supported for this route».
  • На серверах IIS (Windows) — «HTTP Error 405.0 — Method Not Allowed».
405. That’s an error. The request method is not allowed
405. That’s an error. The request method is not allowed

Таким образом, 405 не означает, что сайт «упал». Это скорее «неправильный ключ к двери»: ресурс есть, но доступ к нему осуществляется неверным способом.

Причины возникновения ошибки 405

Ошибка 405 Method Not Allowed всегда связана с тем, что метод HTTP-запроса не поддерживается сервером для конкретного ресурса. Причин этому может быть несколько — от банальных опечаток в URL до ошибок в конфигурации сервера или CMS.

Использование неподдерживаемого метода HTTP-запроса

Наиболее частая причина.

Примеры:

  • форма на сайте отправляет данные методом POST, но сервер ожидает только GET;
  • пользователь вручную пытается выполнить PUT или DELETE через браузер, а сервер не настроен на обработку таких запросов;
  • API ограничивает использование некоторых методов, и обращение к ним блокируется.

Ошибки в настройках маршрутизации сервера

На уровне Apache, Nginx или IIS могут быть заданы правила, запрещающие использование отдельных методов для конкретных директорий или страниц. Если конфигурация задана неправильно — сервер будет возвращать 405.

Некорректная конфигурация .htaccess или nginx.conf

Файл .htaccess (для Apache) и конфигурационный файл nginx.conf часто содержат правила переписывания URL (rewrite). Ошибки в этих настройках приводят к тому, что сервер «не понимает» метод запроса и блокирует его.

Ограничения безопасности (например, CORS)

Если запрос к ресурсу идёт с другого домена и сервер не разрешает кросс-доменные обращения для определённых методов (POST, PUT, DELETE), браузер заблокирует доступ и вернёт ошибку 405.

Возникновение ошибки 405
Возникновение ошибки 405

Ошибки в коде CMS или приложений

В WordPress, Битрикс, Joomla и других системах маршрутизация запросов идёт через встроенные правила. Конфликт плагинов, модулей или ошибок в кастомном коде может привести к запрету методов.

Проблемы с кэшированием или прокси-серверами

Иногда ошибка 405 возникает из-за некорректной работы промежуточных серверов (CDN, прокси). Если в кеше зафиксирован неправильный ответ, он может отдаваться пользователю, даже если ресурс в норме.

Таким образом, причин у ошибки много, и важно сразу определить: проблема на стороне пользователя (URL, браузер, кэш) или на стороне сервера (конфигурация, код, плагины).

Что делать при ошибке 405

Ошибка 405 может появиться как у пользователя, так и у администратора сайта. Действия будут отличаться в зависимости от ситуации.

Что может сделать обычный пользователь

Обновить страницу или попробовать другой браузер

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

Проверить правильность URL

Даже небольшая опечатка в адресе приводит к тому, что сервер возвращает код 405, если метод запроса для указанного пути запрещён.

Очистить кэш и cookies

Повреждённые или устаревшие данные в браузере мешают корректной обработке запросов. Очистка кэша и cookies помогает устранить конфликт.

Попробовать другой метод доступа

Если форма не работает через POST-запрос, можно проверить доступность страницы через GET или найти альтернативный путь входа на сайт.

Что может сделать владелец сайта

Проверить настройки сервера

Для Apache необходимо проверить правила в .htaccess, а для Nginx — директивы в файле nginx.conf. Ошибки в конфигурации часто становятся причиной 405.

Проверить маршрутизацию в CMS или фреймворке

В WordPress, Bitrix, Laravel, Symfony и других системах неправильно настроенные правила маршрутизации могут блокировать определённые методы запросов.

Изучить логи сервера

Файлы access.log и error.log содержат подробную информацию о запросах, которые вызвали ошибку. Это помогает быстро понять источник проблемы.

Проверить плагины и расширения

Конфликты между плагинами или модулями (особенно в WordPress и Bitrix) нередко приводят к ошибке 405. Временно отключите сторонние дополнения, чтобы проверить их влияние.

Проверить права доступа и изменения в базе

Некорректные настройки прав или сбои в базе данных могут ограничивать работу отдельных страниц и вызывать ошибку метода запроса.

Откатить последние изменения

Если ошибка появилась после обновления плагина, темы или модуля, верните сайт к предыдущей версии и протестируйте работу.

Примеры исправления ошибки 405 на практике

Исправление на Apache через .htaccess

Причина часто в ограничении методов в .htaccess.

Проблемный вариант:

<LimitExcept GET POST>
Deny from all
</LimitExcept>

Расширенный вариант (разрешаем нужные методы):

<LimitExcept GET POST PUT DELETE>
Allow from all
</LimitExcept>

Исправление на Nginx через конфиг location

Жёсткие ограничения в nginx.conf могут вызывать 405.

Проблемный вариант:

location /api/ {
limit_except GET {
deny all;
}
}

Разрешаем POST:

location /api/ {
limit_except GET POST {
allow all;
}
}

Исправление на PHP (проверка метода $_SERVER['REQUEST_METHOD'])

Если скрипт обрабатывает только один метод, сервер отдаёт 405.

Проблемный вариант:
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header("HTTP/1.1 405 Method Not Allowed");
exit;
}

Правильнее обрабатывать нужные методы:

 if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// обработка формы
} elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
// вывод данных
} else {
header("HTTP/1.1 405 Method Not Allowed");
}

Исправление в WordPress (через functions.php или плагины)

Часто виноваты плагины или маршруты REST API. Временно отключите плагины и проверьте.

Пример обработки метода в functions.php:

add_action('init', function() {
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
// кастомная логика обработки PUT-запроса
}
});

Как предотвратить появление ошибки 405 в будущем

Регулярная проверка конфигурации сервера

Периодически просматривайте файлы конфигурации веб-сервера. Для Apache — .htaccess и основные виртуальные хосты, для Nginx — nginx.conf и файлы sites-available. Фиксируйте изменения в системе контроля версий, чтобы легко откатываться. Проверяйте, какие методы действительно нужны для каждого маршрута, и не ограничивайте их шире необходимого. После правок выполняйте тест конфигурации и перезапуск с проверкой логов на предмет предупреждений.

Использование стейджинг-среды перед обновлениями

Разворачивайте копию сайта на стейджинге с той же версией PHP, теми же модулями и конфигами сервера. Любые обновления CMS, плагинов, правил маршрутизации, файрвола и переписывания URL сначала проверяйте там: формы, API-эндпоинты, авторизацию, кэширование. После успешных тестов переносите изменения на прод, соблюдая порядок деплоя и проверку доступности ключевых страниц.

Логи и мониторинг

Включите и регулярно проверяйте access.log и error.log. Для ротации используйте Logrotate. Для централизованного сбора и алёртов подойдёт Sentry, ELK/Opensearch Stack, Grafana Loki. Настройте уведомления при всплесках кодов 4xx и по конкретному коду 405. Это позволит быстрее замечать деградации после релизов и изменений инфраструктуры.

Тестирование API и форм через Postman

Держите коллекции запросов в Postman для ключевых путей сайта и API. Храните в них варианты методов GET, POST, PUT, DELETE и проверяйте ожидаемые ответы. Автоматизируйте прогон коллекций перед релизом и после него. Для публичных форм на сайте создайте чек-лист: отправка формы, редирект, проверка CSRF, повторная отправка, валидация полей. Это снизит риск, что из-за изменения метода или заголовков пользователь начнёт видеть 405.

Частые ошибки при исправлении 405

Ошибка Как проявляется Чем опасно Как правильно
Игнорирование логов сервера Админ сразу лезет в конфиги или код, не посмотрев access.log и error.log Легко пойти по ложному следу, тратить часы на ненужные правки Сначала проверить логи: метод, путь, код ответа, IP-адрес, время запроса
Неверные правки в .htaccess или nginx.conf Сайт начинает отдавать 405 не только на проблемных страницах, но и в других разделах Ломается работа всего сайта или API Вносить точечные изменения, проверять конфигурацию через apachectl -t или nginx -t, перезапускать сервер только после теста
Пропуск проверки маршрутизации в CMS/фреймворке Сервер настроен верно, но ошибка сохраняется Виновата логика приложения, а не сервер Проверять роутер CMS/фреймворка, убедиться, что для нужного метода есть обработчик
Массовое отключение модулей и плагинов «наугад» Отключение всего подряд в WordPress/Bitrix Сайт ломается ещё сильнее, а 405 остаётся Отключать дополнения по одному, фиксировать результат, проверять работу критичных функций
Неправильные права доступа к файлам и каталогам Скрипты не выполняются, сервер возвращает 405 как побочный эффект Критичные функции сайта становятся недоступны Восстановить корректные права (644 для файлов, 755 для каталогов), проверить владельца (chown)
Игнорирование кэша и промежуточных уровней CDN или прокси отдают устаревший ответ с 405 Пользователи продолжают видеть ошибку после фикса Очистить кэш браузера, плагинов, CDN; настроить обход кэша для POST, PUT, DELETE
Правки на продакшене без стейджинга Изменения делаются прямо на рабочем сервере Возникают новые ошибки и простои сайта Работать через стейджинг, фиксировать изменения в Git, тестировать на копии перед выкатыванием

Частые ошибки при исправлении 405

Заключение

Ошибка 405 Method Not Allowed — это индикатор того, что сервер получил запрос, но не может его обработать выбранным методом. Такая проблема чаще всего связана с настройками сервера, CMS или некорректными скриптами.

В статье мы подробно разобрали:

  1. что значит ошибка 405 и в каких случаях она возникает;
  2. основные причины появления — от неправильных HTTP-запросов до ошибок в конфигурации;
  3. шаги, которые помогут пользователю и администратору устранить проблему;
  4. примеры исправления ошибки на практике (Apache, Nginx, PHP, WordPress);
  5. как предотвратить повторное появление 405 в будущем.

Если ваш сайт сталкивается с подобными проблемами, важно не только «потушить пожар», но и провести комплексную проверку. В агентстве Profitkit мы предлагаем:

Такой подход позволяет избежать повторных ошибок, повысить надёжность сайта и сосредоточиться на развитии бизнеса.

Подписывайтесь на наш Telegram-канал Profitkit — там мы делимся практическими советами по SEO, рекламе и технической поддержке сайтов.

Свяжитесь с нами

Нажимая кнопку, вы подтверждаете своё согласие на обработку данных в соответствии с Политикой конфиденциальности
#Техническая поддержка

Интересные статьи по теме

Обсудить проект