IIS üzerinde PHP ile HTTP'den HTTPS'ye yönlendirme
MS Internet Information Services'ın (IIS) 6. sürümünü çalıştıran bir Windows sunucusunda çalışmak için HTTPS'ye yeniden yönlendirme konusunda sorun yaşıyordum . Bir Linux sunucusunda Apache ile çalışmaya daha alışkınım, bu yüzden yardım için İnternet'e döndüm ve bu, "php redirect http'den https'ye" aradığımda en yüksek sıralamalı Stack Overflow sorusuydu . Ancak seçilen cevap benim için işe yaramadı.
Bazı deneme yanılmalardan sonra, IIS ile TLS olmayan bağlantılar için $_SERVER['HTTPS']
ayarlandığını keşfettim off
. Aşağıdaki kodun bu soruya arama motoru aracılığıyla gelen diğer IIS kullanıcılarına yardımcı olması gerektiğini düşündüm.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
Düzenleme : Başka bir Yığın Taşması yanıtından daha basit bir çözüm kontrol etmektir if($_SERVER["HTTPS"] != "on")
.