Quand le HTTPS ne fonctionne pas sur WordPress

A chaque mise à jour de mon wordpress, le HTTPS ne semble plus fonctionner.

Je crois que j’ai enfin trouvé le problème ! Il semble que c’était du au fait que mon hébergeur (1and1) utilise un LoadBalancer, et que du coup le serveur Apache en question ne reçoive que du HTTP (en fait entre le LoadBalancer et le serveur il n’y a plus de HTTPS).

Du coup la fonction is_ssl du wordpress ne fonctionnait jamais.

La petite manip qu’il fallait faire, trouvé là :

Websites behind load balancers or reverse proxies that support HTTP_X_FORWARDED_PROTO can be fixed by adding the following code to the wp-config.php file, above the require_once call:

Donc il faut changer la fonction is_ssl contenue dans le fichier wp-includes/load.php :

function is_ssl() {
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
		$_SERVER['HTTPS'] = 'on';
	}

	if ( isset( $_SERVER['HTTPS'] ) ) {
		if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) {
			return true;
		}

		if ( '1' == $_SERVER['HTTPS'] ) {
			return true;
		}
	} elseif ( isset($_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
		return true;
	}
	return false;
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.