Tengo un sitio web en php y está protegido por SSL cuando lo intento con http: // funciona bien
pero cuando accedo a él con https: // su interfaz de usuario se rompe.

Estoy usando este codigo

if (isset($_SERVER['HTTPS']) &&
    ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
    isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
    $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
    $protocol = 'https';
}
else {
    $protocol = 'http';
 }

Por favor avíseme el problema.

Gracias de antemano.

1
Doctor Who 6 feb. 2015 a las 18:06

2 respuestas

La mejor respuesta

Si echas un vistazo a la consola de tu navegador, notarás los siguientes errores:

errs

Estos errores ocurren porque está cargando sobre https, pero solicitando recursos sobre http, lo cual no siempre está permitido por razones de seguridad. Cuando utilice https, debe cargar todos los recursos sobre https .

Para resolver esto, debe cambiar los enlaces de recursos usando rutas relativas, como esta:

/path/to/resource.css

O sírvelos en https, así:

https://pmiplanet.com/path/to/resource.css
1
Marco Bonelli 6 feb. 2015 a las 15:36

La mayoría de los navegadores bloquean el contenido inseguro (contenido servido a través de http)

También deberá cambiar los enlaces a los archivos CSS y javascript a https:

<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" type="text/javascript"></script>  
<script src="http://pmiplanet.com/newTemplate/build/javascripts/bootstrap.min.js" type="text/javascript"></script>   
<script src="http://pmiplanet.com/newTemplate/build/javascripts/modernizr.custom.js" type="text/javascript"></script>   

Si los cambia a algo como

<script src="//code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>

Usarán el mismo protocolo que el sitio web principal (lo que significa que usarán https si solicitó la página con https).

1
TRGWII 6 feb. 2015 a las 15:18