Sirviendo HTTP y HTTPS desde una instalación

4

Tengo una instalación de WordPress que sirve contenido a través de HTTP y HTTPS. La URL del sitio está configurada como "http://www.example.com". Esto funciona para la mayoría de las situaciones: si una persona solicita una página en "https://www.example.com/page", la página se publica a través de HTTPS.

Sin embargo, el desafío al que me enfrento es que hay varias funciones de plantilla de WordPress que extraen la URL del sitio (como get_bloginfo ('hoja de estilo')) y cuando lo hacen, incluyen "http: //" En los resultados devueltos. Del mismo modo, las imágenes que se insertan en el editor WYSIWYG tienen la ruta "http: //www.example.com ..." codificada.

Lo que realmente me gustaría hacer es encontrar una manera de definir la URL del sitio base como "//www.example.com", lo que se espera que haga que todo funcione correctamente. Sin embargo, los campos de administración de WordPress no lo admiten.

¿Alguien tiene alguna idea de cómo hacer esto?

    
pregunta Eric Oliver 18.07.2012 - 20:09

2 respuestas

2

Una solución fácil es usar las reglas .htaccess.

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

Si no quieres forzar HTTPS (o redirigir todas las solicitudes que no son HTTPS), las URL en las publicaciones se pueden manejar de esta manera:

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 mismo maneja la coincidencia de protocolos. Sin embargo, algunos complementos no.

    
respondido por el BillK 16.05.2016 - 03:55

Lea otras preguntas en las etiquetas