Решение ошибки WP REST API 404 Not Found в WordPress

Ошибка WP REST API 404 Not Found — одна из тех, с которыми часто сталкиваются разработчики и администраторы сайтов на WordPress. REST API — важный компонент для современных сайтов и плагинов, обеспечивающий обмен данными между клиентом и сервером. Когда при обращении к endpoint API вы получаете ошибку 404, это обычно означает, что маршрут не найден, и это может серьезно нарушить работу сайта и интеграций.

Что такое WP REST API и почему возникает ошибка 404 Not Found

WP REST API — это интерфейс для взаимодействия с WordPress через HTTP-запросы. Он используется для получения, создания, обновления и удаления данных (постов, пользователей, настроек и др.). Ошибка 404 говорит о том, что сервер не нашел запрашиваемый ресурс.

Основные причины ошибки 404 для WP REST API:

  • Неправильные настройки постоянных ссылок (Permalinks)
  • Конфликты с плагинами или темами, блокирующими REST API
  • Отсутствие необходимых прав доступа или ошибок в механизме авторизации
  • Проблемы с .htaccess или серверными правилами переписывания URL
  • Отключение REST API вручную или плагинами безопасности

Проверка и настройка постоянных ссылок для устранения ошибки 404 REST API

Самая частая причина ошибки 404 — некорректные настройки постоянных ссылок. WordPress использует правила перезаписи для API-запросов, и если они сбиты, API не работает.

Чтобы проверить и исправить:

  1. Перейдите в админку WordPress в раздел Настройки → Постоянные ссылки.
  2. Просто нажмите кнопку Сохранить изменения без изменения настроек. Это пересоздаст правила .htaccess.
  3. Проверьте, что на сервере включен модуль mod_rewrite (для Apache) или аналог для Nginx.

Если вы используете Nginx, убедитесь, что в конфигурации прописаны правила для работы с пермалинками и REST API.

Использование плагинов для диагностики и восстановления REST API

Для диагностики и восстановления работы REST API можно использовать специальные плагины:

  • REST API Log — помогает логировать запросы и смотреть, какие именно вызывают ошибки.
  • Disable REST API — иногда полезно временно отключить и заново включить REST API для устранения конфликтов.
  • Clearfy Pro — мощный инструмент для оптимизации и устранения конфликтов, включая управление REST API.

Пример кода для проверки доступности REST API в теме или плагине

function wperror_check_rest_api() {
    $response = wp_remote_get( rest_url( '/wp/v2/posts' ) );
    if ( is_wp_error( $response ) ) {
        error_log( 'WP REST API error: ' . $response->get_error_message() );
        return false;
    }
    if ( wp_remote_retrieve_response_code( $response ) != 200 ) {
        error_log( 'WP REST API returned status: ' . wp_remote_retrieve_response_code( $response ) );
        return false;
    }
    return true;
}

Этот код можно добавить в файл functions.php вашей темы для базовой проверки доступности REST API и записи ошибок в лог.

Обработка конфликтов с плагинами и темами, блокирующими WP REST API

Многие плагины безопасности или оптимизации могут блокировать REST API, чтобы ограничить доступ и повысить безопасность. Однако это приводит к ошибкам 404 при обращении к API.

Для выявления конфликтов:

  1. Отключите все плагины, кроме основных, и проверьте работу REST API.
  2. Если проблема исчезла, включайте плагины по одному, чтобы найти виновника.
  3. Особое внимание уделите плагинам безопасности (Wordfence, iThemes Security), кэширования и оптимизации.

Пример исключения блокировки REST API в Wordfence:

add_filter('wordfence_allow_rest_api', '__return_true');

Этот фильтр разрешит работу REST API, если Wordfence его блокирует.

Исправление проблем с правами доступа и nonce для REST API 404

REST API защищён системой прав и nonce, чтобы предотвратить несанкционированные запросы. Если при обращении к API вы получаете 404, возможно, проблема связана с неверными правами.

Для проверки и исправления можно добавить в functions.php следующий фильтр, который временно позволит доступ к REST API всем пользователям (использовать с осторожностью):

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    return true;
});

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

Настройка и проверка .htaccess или конфигурации сервера для REST API 404

Если веб-сервер не обрабатывает правила перезаписи корректно, REST API будет выдавать 404.

Для Apache в корне сайта должен быть файл .htaccess с содержимым примерно такого вида:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Для Nginx в конфигурации должен быть блок location, который передаёт запросы в index.php, например:

location / {
    try_files $uri $uri/ /index.php?$args;
}

Без этих правил REST API и другие маршруты WordPress не будут работать.

Дополнительные советы и инструменты для поддержки WP REST API

Для удобства работы с REST API можно использовать плагины и инструменты, которые помогут отладить, протестировать и расширить функционал:

  • WPGPT — плагин с расширенными возможностями работы с API и автоматизацией задач.
  • Postman или Insomnia — внешние инструменты для тестирования API-запросов.
  • WP-CLI команды для работы с REST API и кэшированием.

Также стоит регулярно проверять логи сервера и ошибок WordPress, чтобы оперативно выявлять проблемы.

Решение ошибки WP Login Redirect после сброса пароля в WordPress
22.03.2026
Решение ошибки PHP Fatal error: Allowed memory size exhausted в WordPress
31.03.2026
WooCommerce не работает корректно после обновления: решение проблем с кешированием и сессиями
09.06.2026
Решение ошибки WP Admin admin-ajax.php 403 Forbidden в WordPress
31.12.2025
Решение ошибки WP Mail SMTP в WordPress
23.01.2026