Redirecionando de HTTP para HTTPS com PHP no IIS
Eu estava tendo problemas para obter o redirecionamento para HTTPS para funcionar em um servidor Windows que executa a versão 6 do MS Internet Information Services (IIS) . Estou mais acostumado a trabalhar com o Apache em um host Linux, então procurei ajuda na Internet e essa foi a pergunta do Stack Overflow de melhor classificação quando pesquisei “redirecionamento de php de http para https” . No entanto, a resposta selecionada não funcionou para mim.
Após algumas tentativas e erros, descobri que, com o IIS, $_SERVER['HTTPS']
está definido como off
para conexões não-TLS. Achei que o código a seguir deveria ajudar qualquer outro usuário do IIS que chegar a essa questão por meio de mecanismo de pesquisa.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
Edit : De outra resposta Stack Overflow , uma solução mais simples é verificar if($_SERVER["HTTPS"] != "on")
.