นี่จะต้องเป็นสำเนา แต่ฉันค้นหามานานแล้วและไม่พบอะไรเลย
เมื่อฉันพิมพ์ที่อยู่ของเว็บไซต์โดยใช้httpฉันได้รับหน้าเริ่มต้นของ NginX (https ใช้งานได้ดี):
http://svija.love
ไฟล์กำหนดค่า NginX ประกอบด้วย:
server {
if ($host = svija.love) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name svija.love;
listen 80;
return 404; # managed by Certbot
}
นี้ถูก เพิ่มโดย อัตโนมัติโดย Certbot
ฉันคาดหวังว่าคำสั่งif ($host = svija.love)จะตรวจจับคำขอ http และเปลี่ยนเส้นทางไปที่ HTTPS
แต่มันไม่ทำงานแบบนั้น
ไม่ใช่ผู้เชี่ยวชาญ สำหรับฉันแล้วดูเหมือนว่าบิตที่สองที่ขึ้นต้นด้วยserver_name svija.loveขัดแย้งโดยตรงกับส่วนแรก:
- บล็อกแรกเปลี่ยนเส้นทางหากโฮสต์คือ svija.love
- บล็อกที่สองส่งคืน 404 หากโฮสต์คือ svija.love
ชื่อเซิร์ฟเวอร์ที่กำหนดค่าจริงคือlive.svija.loveหากนั่นสร้างความแตกต่าง
การชี้แจงใด ๆ ที่จะได้รับการชื่นชมอย่างมาก
[อัปเดต]ฉันลบไฟล์กำหนดค่าเริ่มต้นของ NginX และตอนนี้ HTTP เปลี่ยนเส้นทางไปยัง HTTPS ตามที่คาดไว้
ยังคง ถ้าใครสามารถอธิบายทั้งสองบล็อกการกำหนดค่าข้างต้น ฉันชอบที่จะเข้าใจสิ่งที่พวกเขาทำมากขึ้น