web-dev-qa-db-fra.com

Servir HTTP et HTTPS à partir d'une installation

J'ai une installation WordPress qui sert du contenu via HTTP et HTTPS. L'URL du site est configuré en tant que "http://www.example.com". Cela fonctionne dans la plupart des situations - si une personne demande une page à "https://www.example.com/page", la page est affichée via HTTPS.

Cependant, le défi auquel je suis confronté est qu’il existe un certain nombre de fonctions de modèle WordPress qui extraient l’URL du site (comme get_bloginfo ('stylesheet')). Lorsque cela se produit, elles incluent "http: //" dans l’affichage renvoyé. résultats. De même, les images insérées dans l'éditeur WYSIWYG ont le chemin "http: //www.example.com ..." codé en dur.

Ce que j'aimerais vraiment, c’est trouver un moyen de définir l’URL du site de base comme "//www.exemple.com", ce qui, espérons-le, permettrait que tout fonctionne correctement. Cependant, les champs d'administration de WordPress ne le supporteront pas.

Est-ce que quelqu'un a des idées pour faire ça?

4
Eric Oliver

Une solution simple consiste à utiliser les règles .htaccess.

#Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
2
Jarmerson

Si vous ne voulez pas forcer HTTPS (ou rediriger toutes les demandes non-HTTPS), les URL dans les publications peuvent être traitées comme suit:

function content_ssl($content) {
  if (isset($_SERVER["HTTPS"]))
    $content = ereg_replace("http://" . $_SERVER["SERVER_NAME"], "https://" . $_SERVER["SERVER_NAME"], $content);
  return $content;
}
add_filter('the_content', 'content_ssl');

WordPress lui-même gère la correspondance de protocole. Certains plugins cependant ne le font pas.

1
BillK