Quand le HTTPS ne fonctionne pas sur WordPress

Donnez votre avis !

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;
}

Vous serez peut-être intéressé :

Laisser un commentaire

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