Redireccionamiento de HTTP a HTTPS con PHP en IIS
que estaba teniendo problemas para conseguir la redirección de HTTPS para trabajar en un equipo Windows servidor que ejecuta la versión 6 de MS Internet Information Services (IIS). Estoy más acostumbrado a trabajar con Apache en un servidor Linux, así que se dirigió a la Internet para ayuda y este fue el más alto rango cuestión de desbordamiento de pila cuando busqué para “php redirección HTTP a HTTPS”. Sin embargo, la respuesta seleccionada no funcionó para mí.
Después de algún ensayo y error, he descubierto que con IIS, $_SERVER['HTTPS']
es conjunto de off
para las conexiones no 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();
}
?>
Edición: Desde otra Stack Overflow answer, una solución más simple es comprobar if($_SERVER["HTTPS"] != "on")
.
No funciona siempre. Intenté usarlo y no había ningún elemento 'https' en la matriz $ _SERVER debido a que daba error de 'demasiados redireccionamientos'. Tendría que usar otro método. –
Edito la pregunta en unos minutos, quizás esto funcione para usted –
Tuve que probar 'if ($ _SERVER ['HTTPS'] ==" off ")' para que este código funcione. Creo que es porque estoy en IIS, no Apache como el OP. –