Очень короткий ответ: добавьте следующий фрагмент в начало файла wp-config.php.

if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false)
 $_SERVER[‘HTTPS’]=’on’;
else
 $_SERVER[‘HTTPS’]=’off’;

Подробный ответ:

Привет! Недавно я настраивал веб-сайт WordPress для нашего приложения CV [https://thecvapp.com](https://thecvapp.com), и внезапно URL-адрес wp-admin начал перенаправляться на себя, на тот же самый URL-адрес. И когда это происходит достаточное количество раз, Google Chrome просто выдает ошибку err_too_many_redirects, поскольку, вероятно, это бесконечный цикл. Я использую Cloudflare для управления своим SSL и кэшированием, а также еще кое-что.

Почему это происходит?

Моя настройка SSL Cloudflare была установлена ​​​​на «Гибкий» режим, это работает следующим образом: браузер отправляет запрос SSL, Cloudflare захватывает его и расшифровывает, а затем отправляет HTTP-запрос на ваш сервер. Это называется «завершением» SSL на уровне Cloudflare.

Ваш веб-сервер в конце концов получает HTTP-запрос. Это очень легко настроить, поскольку вашему серверу не нужно управлять закрытыми ключами, шифрованием и т. д., но это действительно менее безопасно. В конце концов, все является компромиссом!

Какое решение?

Решение состоит в том, чтобы либо прекратить SSL на уровне wordpress, либо правильно настроить SSL, НО более простое решение — добавить следующий фрагмент в начало вашего `wp-config.php`.

if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false)
 $_SERVER[‘HTTPS’]=’on’;
else
 $_SERVER[‘HTTPS’]=’off’;

Что это делает, так это проверяет HTTP-заголовок, размещенный Cloudflare, чтобы убедиться, что соединение было SSL и уже было защищено на уровне браузера. Если это так, можно принять, даже если текущий запрос является HTTP.


Поздравляем! Продолжайте вести блог как чемпион и подписывайтесь на меня в [@EralpBayraktar](https://twitter.com/EralpBayraktar) :)