Monitor404

Ошибка 501 Not Implemented: что это и как исправить

Код 501 Not Implemented означает, что сервер не умеет делать то, о чём его просят: не знает метод запроса или не поддерживает нужную функцию. В отличие от 500, это не случайный сбой, а отсутствие возможности.

Обновлено 11 октября 2026 г.

Что означает ошибка 501

По RFC 9110 (раздел 15.6.2) ответ 501 Not Implemented означает, что сервер не поддерживает функциональность, необходимую для выполнения запроса. Самый типичный случай — сервер не распознаёт метод запроса и не может поддерживать его ни для какого ресурса. По умолчанию такой ответ считается кэшируемым.

Код встречается заметно реже, чем 500, 502 или 503, потому что обычные браузерные запросы используют GET и POST, которые поддерживает любой веб-сервер. Увидеть 501 при обычном просмотре сайта — значит, что-то нестандартное стоит либо на пути запроса (прокси, фаервол), либо в самом приложении.

501 или 405: в чём разница

КодЧто сообщает серверПример
501 Not ImplementedМетод или функция серверу неизвестны вообщеМетод PROPFIND или MKCOL отправлен на сервер без WebDAV; сервер не понимает значение заголовка Transfer-Encoding
405 Method Not AllowedМетод известен, но для этого адреса запрещёнPOST на статический файл; в ответе должен быть заголовок Allow со списком разрешённых методов (см. 405)
500 Internal Server ErrorЗапрос понятен и разрешён, но выполнение упалоФатальная ошибка PHP в обработчике

Что делать посетителю

  1. Обновите страницу и попробуйте другой браузер. Расширения, меняющие запросы (блокировщики, «ускорители», прокси-плагины), иногда отправляют нестандартные заголовки.
  2. Отключите VPN, прокси и антивирусную «проверку трафика» и повторите попытку.
  3. Если ошибка появилась в форме, личном кабинете или при загрузке файла, повторите действие позже: возможно, сервис в процессе обновления и функция временно недоступна.
  4. Сообщите владельцу сайта или в поддержку сервиса, какое действие вызвало ошибку.

Почему 501 возникает на сайте: что проверить владельцу

  • Нестандартный метод запроса. Клиент, API-библиотека или скрипт отправляет метод, который веб-сервер или обработчик не поддерживает (например, PATCH или WebDAV-методы).
  • Неподдерживаемые заголовки. nginx отвечает 501 на запрос с неизвестным значением Transfer-Encoding, а клиенты и прокси с ошибками в реализации иногда такие запросы формируют.
  • Прокси, балансировщик, WAF или CDN. Промежуточный узел может не пропускать или не понимать метод и сам возвращать 501, хотя до вашего приложения запрос не доходит.
  • Намеренная заглушка в приложении. Разработчики иногда возвращают 501 для эндпоинтов, которые описаны в API, но ещё не реализованы. Это нормальное использование кода.
  • Устаревшее или урезанное ПО сервера. Старые версии веб-серверов и встроенные серверы в роутерах и устройствах поддерживают малую часть методов.

Как воспроизвести и найти запрос

Сначала найдите в журнале доступа запросы с кодом 501 и посмотрите, какой метод и адрес их вызывают:

Поиск ответов 501 в access.log (формат combined)
# метод, адрес и число запросов с кодом 501
awk '$9 == 501 {print $6, $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

# воспроизвести запрос неподдерживаемым методом
curl -i -X PROPFIND https://example.ru/

# сравнить с тем, как сервер отвечает на обычные методы
curl -I https://example.ru/
curl -i -X OPTIONS https://example.ru/

Если 501 приходит только через CDN или балансировщик, а при прямом обращении к серверу запрос проходит, причина в промежуточном узле: сверьте его правила и разрешённые методы.

Ограничить методы осознанно

Если вашему сайту нужны только GET, HEAD и POST, отсекайте остальное явно, а не ждите, что это сделает случайная ошибка. Для известных методов лучше отдавать 405, для неизвестных — 501:

nginx: разрешить только GET, HEAD и POST
server {
    listen 80;
    server_name example.ru;

    # всё, кроме GET, HEAD и POST, отсекаем
    if ($request_method !~ ^(GET|HEAD|POST)$) {
        return 501;
    }

    location / {
        # ...ваша обычная конфигурация
    }
}

Если в приложении действительно ещё не реализован метод API, возвращайте 501 осознанно и поясняйте в теле ответа, что именно не поддерживается. Если метод просто не разрешён для этого URL, используйте 405 с заголовком Allow.

Ошибка 501 и индексация сайта

Поисковые роботы запрашивают страницы методами GET и HEAD, поэтому 501 в их логах встречается редко. Если же на GET страница отвечает 501, поисковик воспринимает это как серверную ошибку наравне с остальными 5xx: страница не получит обновления, а при долгом сохранении проблемы может выпасть из индекса.

Отдельный риск: часть серверов и самописных обработчиков не поддерживает HEAD и отвечает на него 501 или 405, хотя GET работает. Это ломает проверки доступности и ряд служебных обращений. Проверьте оба метода:

bash
curl -s -o /dev/null -w "GET:  %{http_code}\n" https://example.ru/page/
curl -s -o /dev/null -I -w "HEAD: %{http_code}\n" https://example.ru/page/

Для остальных кодов группы 5xx и 4xx есть общий справочник кодов ответа. Если нужно следить за пропавшими страницами после правок конфигурации, подключите Monitor404: он покажет, какие адреса стали отдавать 404 и сколько людей на них попало.

Частые вопросы

Что значит ошибка 501 Not Implemented?

Сервер не поддерживает функцию или метод запроса, нужные для ответа. Это не временный сбой, а отсутствие возможности на стороне сервера или промежуточного прокси.

Чем 501 отличается от 405?

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

Как исправить ошибку 501 посетителю сайта?

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

Влияет ли ошибка 501 на поисковое продвижение?

Если на запрос GET страница отвечает 501, поисковик считает её недоступной, как и при других 5xx. При долгом сохранении проблемы страница может исчезнуть из индекса.

Читайте также