Mengalihkan dari HTTP ke HTTPS dengan PHP di IIS
Saya mengalami kesulitan mendapatkan pengalihan ke HTTPS untuk bekerja di server Windows yang menjalankan versi 6 dari MS Internet Information Services (IIS) . Saya lebih terbiasa bekerja dengan Apache di host Linux jadi saya beralih ke Internet untuk meminta bantuan dan ini adalah pertanyaan Stack Overflow dengan peringkat tertinggi saat saya mencari "php redirect http ke https" . Namun, jawaban yang dipilih tidak berhasil untuk saya.
Setelah beberapa kali coba-coba, saya menemukan bahwa dengan IIS, $_SERVER['HTTPS']
disetel ke off
untuk koneksi non-TLS. Saya pikir kode berikut akan membantu pengguna IIS lain yang datang ke pertanyaan ini melalui mesin pencari.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
Sunting : Dari jawaban Stack Overflow lain , solusi yang lebih sederhana adalah memeriksa if($_SERVER["HTTPS"] != "on")
.