bloginfo () y get_template_directory_uri () con SSL?

4

Tengo un tema de Wordpress que intento colocar en un sitio web solo SSL. No hay una versión no SSL del sitio.

El tema de Wordpress usa varias funciones como bloginfo('pingback_url') , bloginfo('template_directory') , get_template_directory_uri() , etc. Todas las funciones típicas de un tema.

Todas estas funciones generan http enlaces, no https , por lo tanto, ninguna de ellas se carga, ya que no existe una versión no SSL del sitio.

¿Cómo obligo a Wordpress a usar https para TODO?

    
pregunta Jake Wilson 17.01.2013 - 00:48

2 respuestas

2

intenta instalar este complemento de WordPress. enlace pero lea las instrucciones de instalación ya que tiene algunas cosas adicionales que hacer después de activar el complemento.

    
respondido por el WP Themes 17.01.2013 - 16:28
2

Si su sitio web está en un servicio de equilibrio de carga que maneja SSL, es posible que su servidor no obtenga nada en la variable de servidor $_SERVER['HTTPS'] , y $_SERVER['SERVER_PORT'] tenga 80 cuando debería ser 443 (vea esto Respuesta de desbordamiento de pila para más detalles).

Si este es el caso, y no puedes hacer que tu anfitrión cambie eso, entonces es posible que necesites manipularlo y decirle a PHP que de todos modos es SSL. Configure las URL de su casa y sitio para usar https, de modo que todas las URL generadas por WordPress salgan como URL https. Luego coloque este código en un complemento ( aquí hay uno ya hecho , colóquelo en su carpeta de complementos y actívelo):

// if site is set to run on SSL, then force-enable SSL detection!
if (stripos(get_option('siteurl'), 'https://') === 0) {
    $_SERVER['HTTPS'] = 'on';
}

NB: esto puede ser contraproducente para usted, porque probablemente tenga un código (en complementos o su propio código) que verifica si la página se cargó a través de SSL, y redirige si no lo fue. ¡Tu servidor no podrá probar esto ahora! Como tal, también debe agregar un poco de JavaScript a su página para que exista un cierto nivel de seguridad de que sus páginas seguras se cargarán a través de SSL (esto también se hace con el complemento listo para usar):

<script>
if (document.location.protocol != "https:") {
    document.location = document.URL.replace(/^http:/i, "https:");
}
</script>

NB: ¡esto no es infalible! Sin embargo, debería detectar la mayoría de las situaciones, una excepción es alguien que deshabilita JavaScript y luego edita la URL para forzar su regreso a http. Si lo hacen, tal vez merecen que sus credenciales de tarjeta de crédito se vendan a Elbonia.

    
respondido por el webaware 01.02.2013 - 04:20

Lea otras preguntas en las etiquetas