Chargement de la police Google en HTTPS, le contenu étant bloqué
Il y a un thème wordpress qui tire automatiquement l'option police choisie et la demande à partir de Google font. lorsque ssl était nécessaire pour quelques pages sélectionnées, la police devenait missing
Affichage du journal de la console:
[Bloqué] la page à ' https://www.example.com/ 'a été chargé via HTTPS, mais a exécuté du contenu non sécurisé à partir de' http://fonts.googleapis.com/css?family=Alegreya+Sans: 300,400,500,700,800 ': ce contenu doit également être chargé sur HTTP.
Entrerait-il dans le code et ferait-il fonctionner toutes les requêtes en https à partir de Google font? Est-il une solution à cela?
Trouvé le code source... mais semble comme c'est déjà cela... pourrait - il y avoir une erreur dans la logique if?
$prefix = "http";
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') $prefix = "https";
if($get_google_font){
if(!in_array($rule_split[0], $this->used_fonts))
{
$this->extra_output .= "n<!-- google webfont font replacement -->n";
$this->extra_output .= '<link id="google_webfont_'.$this->webfont_count.'" rel="stylesheet" type="text/css" href="'.$prefix.'s://fonts.googleapis.com/css?family='.str_replace(' ','+',$rule_split[0]).$font_weight.'" />';
}
4 réponses
Modifiez votre thème en remplaçant chaque occurrence de http://fonts.googleapis.com/...
par https://fonts.googleapis.com/...
(attention aux s ).
Les ressources qui pourraient poser un risque de sécurité (comme les scripts et les polices) doivent être chargées via une connexion sécurisée lorsqu'elles sont demandées dans le contexte d'une page sécurisée pour une raison évidente: elles auraient pu être manipulées en cours de route.
Utilisez les URI relatives au Protocole
Il suffit d'utiliser un //
préfixe. (instead of http[s]://
)
- sur une page https, la version sécurisée sera chargée.
- sur sur une page http simple, la version http simple sera chargée.
Modifiez votre thème en remplaçant chaque occurrence de http://fonts.googleapis.com/...
par //fonts.googleapis.com/...
Laissez le navigateur gérer toutes les choses simplement supprimer 'http' de votre référence.
De même, vous devez faire pour d'autres bibliothèques aussi si vous rencontrez le même problème avec eux par exemple
https://fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
À
//fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
Même chose pour
http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
À
//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
J'ai fait face à ce problème lorsque vous utilisez des liens google cdn et qui ne sont pas accessibles (comme un pays comme la Chine), essayez d'utiliser des fichiers locaux à la place des CDN