Servindo HTTP e HTTPS de uma instalação

4

Eu tenho uma instalação do WordPress que serve conteúdo via HTTP e HTTPS. O URL do site está configurado como "http://www.example.com". Isso funciona para a maioria das situações. Se uma pessoa solicitar uma página em "https://www.example.com/page", a página será veiculada via HTTPS.

No entanto, o desafio que estou enfrentando é que há um número de funções de templates do WordPress que puxam o URL do site (como get_bloginfo ('stylesheet')) e quando eles fazem isso, eles incluem "http: //" nos resultados retornados. Da mesma forma, as imagens inseridas no editor WYSIWYG têm o caminho "http: //www.example.com ..." codificado.

O que eu realmente gostaria de fazer é encontrar uma maneira de definir o URL do site de base como "//www.example.com", o que, esperamos, faria tudo funcionar corretamente. No entanto, os campos de administração do WordPress não suportam isso.

Alguém tem alguma idéia de como fazer isso?

    
por Eric Oliver 18.07.2012 / 20:09

2 respostas

2

Uma solução fácil é usar as regras do .htaccess.

#Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
por Jarmerson 16.05.2016 / 02:21
1

Se você não quiser forçar o HTTPS (ou redirecionar todas as solicitações não HTTPS), os URLs nas postagens podem ser manipulados assim:

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');

O próprio WordPress manipula a correspondência de protocolo. Alguns plugins, no entanto, não.

    
por BillK 16.05.2016 / 03:55

Tags