wpdebug.ru wordpress WP Debug

Решение проблемы ERR_TOO_MANY_REDIRECTS в WordPress

Ошибка ERR_TOO_MANY_REDIRECTS — одна из самых неприятных проблем, с которой сталкиваются разработчики и администраторы сайтов на WordPress. Она возникает, когда браузер попадает в бесконечный цикл перенаправлений, и страница не загружается. В этой статье мы подробно разберем причины возникновения ошибки, методы ее диагностики, а также практические способы исправления с примерами кода и полезными плагинами.

Что вызывает ошибку ERR_TOO_MANY_REDIRECTS в WordPress

Основной причиной появления данной ошибки является неправильная настройка редиректов, которая приводит к циклическому перенаправлению между URL. К распространённым причинам относятся:

  • Неправильные настройки URL сайта (siteurl и home) в базе данных или в файле wp-config.php;
  • Ошибки в правилах .htaccess, особенно при использовании плагинов для SEO или кеширования;
  • Конфликты плагинов, которые управляют редиректами или безопасностью;
  • Проблемы с SSL-сертификатом и принудительным переходом с http на https и обратно;
  • Неверные настройки прокси-сервера или CDN.

Чтобы эффективно устранить ошибку, необходимо последовательно проверить и исключить каждую из возможных причин.

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

Первый шаг — убедиться, что параметры siteurl и home совпадают и корректны. Их можно проверить в админке WordPress в разделе "Настройки > Общие". Но если ошибка не позволяет зайти в админку, сделайте это через базу данных или wp-config.php.

Проверка через базу данных

Подключитесь к базе данных через phpMyAdmin или любой другой клиент и выполните запрос:

SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl', 'home');

Если значения отличаются или содержат неправильный протокол (http/https), исправьте их:

UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name = 'siteurl' OR option_name = 'home';

Замените https://example.com на URL вашего сайта.

Исправление через wp-config.php

Если доступ к базе данных затруднен, можно жестко задать значения в файле wp-config.php:

define('WP_DEBUG_siteurl', 'https://example.com');
define('WP_DEBUG_home', 'https://example.com');

Это временное решение, позволяющее обойти ошибку и зайти в админку.

Проверка и очистка файла .htaccess

Неправильные правила в файле .htaccess часто становятся причиной циклических редиректов. Особенно это касается сайтов с включенным SSL и плагинами SEO.

Чтобы проверить, временно переименуйте файл .htaccess в .htaccess_backup и попробуйте загрузить сайт. Если ошибка пропала, причина в правилах.

Для стандартной работы WordPress в корневом каталоге .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

Если вы используете SSL, добавьте перенаправление с http на https:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Но будьте осторожны, чтобы не создать конфликт с правилами плагинов.

Диагностика конфликтов плагинов и тем

Иногда ошибка возникает из-за конфликтов плагинов, которые управляют редиректами, кешированием или безопасностью. Чтобы проверить, деактивируйте все плагины, переименовав папку wp-content/plugins (например, в plugins_backup), и проверьте работу сайта.

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

Особое внимание уделите плагинам, таким как Redirection, Yoast SEO, Clearfy Pro, а также кеширующим плагинам, например, WP Super Cache или W3 Total Cache.

Использование плагинов для управления редиректами

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

Пример добавления редиректа через API плагина Redirection:

function wpdebug_add_redirect() {
    if ( class_exists('Red_Item') ) {
        $redirect = new Red_Item();
        $redirect->source_url = '/old-page/';
        $redirect->target_url = '/new-page/';
        $redirect->match_type = 'url';
        $redirect->action_type = 'url';
        $redirect->status_code = 301;
        $redirect->save();
    }
}
add_action('init', 'wpdebug_add_redirect');

Этот код добавит 301 редирект со страницы /old-page/ на /new-page/.

Исправление проблем с SSL и https

Частая причина циклов редиректов — конфликт между http и https. Например, если сайт принудительно переходит на https, а в настройках прописан http, браузер может попасть в цикл.

Для устранения используйте плагин Clearfy Pro, который умеет корректно настроить https и устранить конфликтные правила.

Также можно добавить в wp-config.php следующий код для правильного определения SSL:

function wpdebug_force_ssl() {
    if ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
        $_SERVER['HTTPS'] = 'on';
    }
}
add_action('plugins_loaded', 'wpdebug_force_ssl');

Этот код помогает корректно работать сайту за прокси или CDN, передающим https через заголовок X-Forwarded-Proto.

Логирование и отладка перенаправлений

Для детальной отладки можно включить логирование редиректов. В WordPress добавьте следующий код в файл functions.php вашей темы или в плагин:

function wpdebug_log_redirects() {
    if ( headers_sent() ) {
        return;
    }
    $location = wp_get_redirect_url();
    if ( $location ) {
        error_log('Redirect to: ' . $location);
    }
}
add_action('template_redirect', 'wpdebug_log_redirects');

Логи ошибок помогут понять, куда именно идет перенаправление и выявить циклы.

Итоговые рекомендации

  • Проверьте и исправьте настройки siteurl и home;
  • Очистите и упорядочите правила в .htaccess;
  • Деактивируйте плагинов поочередно, выявляя конфликтные;
  • Используйте плагины Redirection и Clearfy Pro для управления редиректами и настройки SSL;
  • Включите логирование для отладки циклов перенаправлений;
  • Проверьте настройки прокси и CDN.
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше