เปลี่ยนเส้นทางจาก HTTP เป็น HTTPS ด้วย PHP บน IIS
ผมมีปัญหาในการเปลี่ยนเส้นทางไปยัง HTTPS ในการทำงานบนเซิร์ฟเวอร์ Windows ซึ่งทำงานรุ่น 6 ของMS Internet Information Services (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")
เป็นทางออกที่ง่ายคือการตรวจสอบ