คำตอบสั้น ๆ: ตั้ง Redirect แบบ 301 จาก HTTP ไป HTTPS บน Plesk ด้วยตัวเลือกในตัว เลือกโดเมนแบบมีหรือไม่มี www และแก้ปัญหา Redirect วนหรือ Mixed Content
คู่มือนี้อธิบาย HTTPS ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
เมื่อติดตั้ง SSL Certificate แล้ว เว็บไซต์ของคุณจะเปิดได้ทั้งแบบ http:// และ https:// ถ้าไม่บังคับ ผู้เข้าชมที่พิมพ์ชื่อโดเมนตรงๆ หรือกดลิงก์เก่าจะยังใช้การเชื่อมต่อที่ไม่เข้ารหัส เบราว์เซอร์จะแสดงคำว่า Not secure และ Google จะเห็นเว็บเดียวกันเป็นสองชุด การตั้ง Redirect แบบ 301 จาก HTTP ไป HTTPS แก้ได้ทั้งสองเรื่อง
Plesk มีตัวเลือกนี้ให้ในตัว ไม่ต้องแก้ไฟล์ .htaccess เอง บทความนี้อ้างอิง Plesk Obsidian ชื่อเมนูอาจต่างกันเล็กน้อยตามเวอร์ชันย่อย
สิ่งที่ต้องเตรียม
- บัญชีเข้าใช้งาน Plesk ของโดเมน
- SSL Certificate ที่ใช้งานได้และครอบคลุมทั้ง
example.comและwww.example.comถ้ายังไม่มี ติดตั้ง Let's Encrypt ฟรีได้ตาม วิธีการติดตั้ง SSL by Let's Encrypt บน Plesk - ทดสอบก่อนว่าเปิด
https://example.comได้โดยเบราว์เซอร์ไม่เตือน ถ้า HTTPS ยังใช้ไม่ได้แล้วบังคับ Redirect ผู้เข้าชมจะเข้าเว็บไม่ได้เลย
วิธีที่ 1: ใช้ตัวเลือกใน Hosting Settings (แนะนำ)
- ล็อกอิน Plesk ไปที่ Websites & Domains แล้วเลือกโดเมน
- เปิดแท็บ Hosting & DNS แล้วคลิก Hosting (ในบางเวอร์ชันชื่อ Hosting Settings)
- ในส่วน Security ตรวจว่าติ๊ก SSL/TLS support และเลือก Certificate ที่ถูกต้องแล้ว
- ติ๊ก Permanent SEO-safe 301 redirect from HTTP to HTTPS
- ในส่วน Preferred domain เลือกว่าจะให้เว็บใช้แบบมี www หรือไม่มี www ระบบจะ Redirect อีกแบบมาหาแบบที่เลือกด้วย 301 เช่นกัน ถ้าเว็บเดิมใช้แบบใดมาตลอด ให้เลือกแบบนั้นเพื่อไม่ให้กระทบ SEO
- กด Apply หรือ OK
วิธีที่ 2: ใช้สวิตช์ใน SSL It!
ถ้าเซิร์ฟเวอร์ติดตั้งส่วนขยาย SSL It! ไว้ (Plesk รุ่นปัจจุบันมีมาให้โดยทั่วไป) ให้ไปที่ Websites & Domains เลือกโดเมน แล้วคลิก SSL/TLS Certificates จะเห็นสวิตช์ Redirect from http to https เปิดสวิตช์นี้ให้ผลเหมือนวิธีที่ 1 และเป็นค่าเดียวกัน เปิดที่ใดที่หนึ่งก็พอ
ในหน้าเดียวกันยังมีตัวเลือก HSTS ซึ่งสั่งให้เบราว์เซอร์ใช้ HTTPS กับโดเมนนี้เสมอ แม้ผู้ใช้จะพิมพ์ http:// ควรเปิดหลังจากใช้ HTTPS มาสักระยะและแน่ใจว่าทุก Subdomain รองรับ HTTPS แล้ว เพราะเมื่อเบราว์เซอร์จำค่า HSTS ไว้ จะปิดย้อนกลับจากฝั่งเซิร์ฟเวอร์ทันทีไม่ได้จนกว่าค่า max-age จะหมดอายุ
วิธีที่ 3: ใช้ .htaccess (กรณีจำเป็น)
ใช้เฉพาะเมื่อไม่มีสิทธิ์เข้าหน้า Hosting Settings และเว็บทำงานบน Apache (ค่าเริ่มต้นของ Plesk บน Linux) เปิดไฟล์ httpdocs/.htaccess ด้วย File Manager แล้วเพิ่มบรรทัดต่อไปนี้ไว้ด้านบนสุด ก่อนกฎอื่นทั้งหมด
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
อย่าใช้วิธีนี้พร้อมกับวิธีที่ 1 เพราะจะมี Redirect ซ้อนกันโดยไม่จำเป็น วิธีจัดการไฟล์ดูได้ที่ อัปโหลดและจัดการไฟล์เว็บไซต์ด้วย File Manager บน Plesk