WordPress wp-admin https boucle de redirection

47

J'utilise nginx comme serveur Web et j'ai modifié le fichier de configuration pour qu'il pointe vers https. Je modifie donc les paramètres d'URL de WordPress en https. J'ai également ajouté le code administrateur WordPress force ssl à mon fichier wp-config, mais je continue à fonctionner. dans l'erreur " Cette page Web contient une boucle de redirection "

    
posée iamkingsleyf 03.12.2014 - 06:57

4 réponses

77

Vous avez ajouté $_SERVER['HTTPS'] = 'on'; à votre wp-config.php ?

Vous devez également utiliser le plug-in WP Migrate DB pour migrer de http://yoursite.com à https://yoursite.com

    
réponse donnée thaevok 25.02.2015 - 20:01
40

J'ai eu un problème similaire et je viens d'ajouter l'extrait suivant à mon wp-config.php :

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

comme suggéré dans le Codex . Cela ne sera nécessaire que si le relais SSL est activé dans votre configuration d'équilibreur de charge (ou de pare-feu). Cela signifie que même si vous pouvez accéder au site via HTTP dans TLS / SSL, la communication que votre serveur reçoit est HTTP uniquement. Pour tenir compte de cela, l’en-tête ci-dessus est nécessaire pour que WordPress puisse "définir" HTTPS sur on dans le tableau $_SERVER config.

    
réponse donnée Elias 16.03.2016 - 21:27
7

Etant donné que je n'ai pas encore le privilège de commentaire, je posterai cet ajout sous forme d'une autre réponse:

La solution proposée par Elias, qui consiste à ajouter les éléments suivants à wp-config.php , a fait l'affaire pour moi:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

Cependant, cela ne fonctionnait que lorsque je le plaçais avant tout le reste dans ce fichier!

    
réponse donnée Michael Jung 14.09.2017 - 10:52
4

Une autre version pour les livres, ajoutez-la simplement en haut de wp-config.php

La raison en est qu’il pourrait y avoir des équilibreurs de charge ou quelque chose qui ne transmet pas la valeur https appropriée, vous devez donc le récupérer ailleurs et le simuler pour wordpress.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}
    
réponse donnée Timo Huovinen 21.02.2017 - 13:33

Lire d'autres questions sur les étiquettes