[WordPress] Mixed Content et détection – port 80 au lieu de 443

drupal-ssl

 

Coucou à tous,

 

Comme vous avez pu le constater (ou pas) Dyrk est désormais en https ... bon il y a eu quelques surprises, mais elles sont à 99% réglées !

 

Vu que nous sommes samedi, je vais prendre le temps de rentrer doucement dans le cœur du sujet.

 

Apache

Comme vous le savez Apache pour fonctionner avec PHP doit avoir un module d'activer.
Ce qui vous permet, lorsque vous vous connectez sur un serveur d'ouvrir des pages / scripts PHP qui seront interprétés.

Ex : /etc/apache2/mods-enabled/php5.conf

 

PHP

 

PHP reçoit des informations lorsqu'il est chargé par le biais d'Apache.
Notamment le port sur lequel se connecte l'utilisateur.

$_SERVER['SERVER_PORT']

 

 

WORDPRESS

 

WordPress, charge les scripts, feuilles de style de votre thème et de vos plugins via la fonction wp_head() !
Cette fonction appelle 2 autres fonctions wp_enqueue_script()  & wp_enqueue_style()

Fonction qui vont se charger de récupérer les liens vers les fichiers ...
Ces liens sont reconstruits via les informations de votre WordPress

siteurl/cheminversleplugin

C'est le siteurl qui va nous intéresser !
WordPress gère automatiquement le préfixe des urls "http://" ou "https://"

Comment ?
Par quelle magie
!!! NOIRE !!!

 

Il va juste contrôler la fameuse variable $_SERVER['SERVER_PORT']

  • 80 : http
  • 443 : https

 

Selon la manière dont va être configuré votre Apache, il se peut que cette variable vous retourne 80 au lieu de 443 et inversement, même si ça n'est pas le cas ...

Du coup, si vous vous connectez sur votre WordPress en https ... que wordpress inclu des scripts & des css en http ...
Votre navigateur les bloquera par sécurité !!!
Pour ce que l'on appelle du Mixed Content (contenu mixe ...)

 

En https ... il faut que tous les liens que vous incluez (script, css, ...), soient en https ... sinon ils ne seront pas chargés ...

 

 

Bref ... pour forcer WordPress, à vous mettre vos liens en https, il suffit juste de renseigner dans l'entête du script wp-config.php (situé à la racine de votre WordPress)
ceci :

$_SERVER['SERVER_PORT'] = 443;

 

Hop, ça fonctionnera comme sur des roulettes !!!

 

Pour ce qui est des images, et autres liens dans vos postes, je vous invite à le migrer vers du https via cet outil en remplaçant http://votresite par https://votresite

 

Bonne Journée à vous ^^

 

 

Partagez ce contenu

Laisser une réponse

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