Redirigir de HTTP a HTTPS con PHP en IIS
Estaba teniendo problemas para lograr que la redirección a HTTPS funcionara en un servidor de Windows que ejecuta la versión 6 de MS Internet Information Services (IIS) . Estoy más acostumbrado a trabajar con Apache en un host Linux, así que busqué ayuda en Internet y esta fue la pregunta de Stack Overflow de mayor rango cuando busqué "php redirect http to https" . Sin embargo, la respuesta seleccionada no funcionó para mí.
Después de algunas pruebas y errores, descubrí que con IIS, $_SERVER['HTTPS']
está configurado off
para conexiones que no son TLS. Pensé que el siguiente código debería ayudar a cualquier otro usuario de IIS que llegue a esta pregunta a través del motor de búsqueda.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
Editar : desde otra respuesta de Stack Overflow , una solución más simple es verificar if($_SERVER["HTTPS"] != "on")
.