Отключить и скрыть WP-JSON

Вопрос или проблема

Как можно деактивировать wp-json и перенаправить URL на страницу 404 без использования плагинов. Каждый раз, когда кто-то вызывает example.com/wp-json, он перенаправляется на страницу 404 вместо загрузки?

Я пытался сделать это через htaccess, но это не работает. Есть ли возможное решение, пожалуйста?

Сработает ли добавление этого в functions.php?

add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

Добавьте этот фрагмент в ваш файл wp-includes/functions.php

 add_filter( 'rest_authentication_errors', 'wp_snippet_disable_rest_api' );
   function wp_snippet_disable_rest_api( $access ) {
      return new WP_Error( 'rest_disabled', __('API REST для WordPress отключен.'), array( 'status' => rest_authorization_required_code()));
   }

из wpdynamic.com

.

Ответ или решение

Чтобы отключить доступ к REST API в WordPress и перенаправить запросы к /wp-json на страницу 404 без использования плагинов, существуют несколько эффективных подходов. Этот процесс требует внесения изменений в файлы вашей темы или ядро WordPress. Ниже представлены шаги, которые помогут достичь этой цели.

Шаг 1: Отключение REST API через functions.php

Первый метод включает добавление фильтров в файл functions.php вашей активной темы. Это простой и эффективный способ отключить REST API:

// Отключаем REST API
add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

// Отключаем доступ к REST API и возвращаем ошибку
add_filter('rest_authentication_errors', 'disable_rest_api');

function disable_rest_api($access) {
    return new WP_Error('rest_disabled', __('REST API отключен.'), array('status' => 403));
}

Этот код делает следующее:

  • Отключает JSON API (первоначальную реализацию REST).
  • Возвращает ошибку 403 (запрещено) при любом доступе к REST API.

Шаг 2: Перенаправление запросов на страницу 404

Теперь, чтобы перенаправить запросы к /wp-json на страницу 404, вы можете использовать следующий код:

add_action('template_redirect', 'redirect_wp_json');

function redirect_wp_json() {
    if (strpos($_SERVER['REQUEST_URI'], '/wp-json') !== false) {
        // Устанавливаем заголовки для 404
        status_header(404);
        nocache_headers();
        include(get_404_template());
        exit();
    }
}

Этот код использует хуки шаблонов WordPress, чтобы проверить, содержит ли запрашиваемый URL /wp-json. Если это так, он устанавливает заголовок 404 и отображает страницу ошибки.

Шаг 3: Проверка работы

После добавления вышеуказанных кодов в ваш файл functions.php, выполните следующие действия для проверки:

  1. Откройте веб-браузер.
  2. Введите URL example.com/wp-json.
  3. Убедитесь, что он перенаправляет вас на страницу 404.

Заключение

Используя представленные методы, вы сможете успешно отключить и скрыть доступ к REST API без установки дополнительных плагинов. Это решение также способствует улучшению безопасности вашего сайта, предотвращая нежелательные вызовы к API. Пожалуйста, важно заметить, что при внесении изменений в functions.php, необходимо создать резервные копии вашего сайта, чтобы избежать возможных ошибок.

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

Оцените материал
Добавить комментарий

Капча загружается...