Перенаправлення з HTTP на HTTPS з PHP на IIS
У мене виникли проблеми з перенаправленням на HTTPS для роботи на сервері Windows, який працює у версії 6 інформаційних служб Інтернету MS (IIS) . Я більше звик працювати з Apache на хості Linux, тому я звернувся до Інтернету за допомогою, і це було найвищого питання щодо переповнення стека, коли я шукав "php перенаправлення http на https" . Однак обрана відповідь для мене не спрацювала.
Після деяких спроб та помилок я виявив, що для IIS $_SERVER['HTTPS']
встановлено не off
для TLS-з'єднань. Я вважав, що наступний код повинен допомогти іншим користувачам IIS, які приходять до цього питання через пошукову систему.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
Редагувати : З іншої відповіді на переповнення стека більш простим рішенням є перевірка if($_SERVER["HTTPS"] != "on")
.