เมื่อวานเคนเพิ่งเปลี่ยนจาก HTTP ปกติเป็น HTTPS ครับ ทีนี้มาวันนี้มีลูกค้าแจ้งมาว่าซับโดเมน subdomain.domain.com ปกติมันเข้าด้วย www.subdomain.domain.com ได้ มาวันนี้มันเข้าไม่ได้ เคนก็รู้เลยว่ามันต้องเป็นที่ HTTPS แน่นอนและมันต้องแก้ที่ไฟล์ .htaccess แน่นอน
ค้นหามาเจอใน StackOverflow ครับ คลังความรู้ทางลัดของโปรแกรมเมอร์จริง ๆ ต้องขอบคุณท่านนี้จริง ๆ VSG24
ทำให้เราเขียนโค้ด htaccess 2 บรรทัดก็รองรับทั้ง http และ https เลยทีเดียว
# Redirect www subdomain to non-www
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.yourdomain\.com)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [R=301,L]
อยากจะกด Vote ให้เหมือนกันแต่แอคเคาท์เคนไม่สามารถกดได้อ่ะ!!
อีกนิด
แต่หลังจากใช้เท่านี้มันยังไม่เพียงพอครับ บางครั้งมันยังไม่ยอม Redirect ไป HTTPS เคนเลยต้องเพิ่มโค้ดอีกชุดนึงเพื่อประกันว่ามันจะใช้ HTTPS แบบชัวร์ ๆ ใส่ต่อจากข้างบนได้เลย
RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
กำหนด DNS
หลังจากที่เราทำตัวไฟล์ htaccess แล้ว บางครั้งเข้าด้วย www.subdomain.domain.com จะมี Error ที่บอกว่า DNS มันหาไม่เจอ เราต้องไปเพิ่มที่ DNS ด้วย โดยถ้าใช้ Direct Admin มันก็จะง่ายด้วยการเข้าเมนู DNS Management แบบนี้ครับ
ตัวอย่างก็คือ Subdomain คือ shop เราต้องกำหนดลงไปด้วยว่าถ้าคนพิมพ์ www.shop มามันจะเรียกที่ shop นะ
โดยการเพิ่ม CNAME เข้าไปตามตัวอย่างในรูปด้านบนครับ
เสร็จแล้ว
ลองเอาไปใช้ดูนะ สำหรับการ Redirect www.subdomain.domain.com -> subdomain.domain.com เคนลองมาหลายโค้ดเหมือนกัน แต่ชุดนี้เจ๋งสุดและใช้ได้จริงสำหรับเคนเลยครับ
เดี๋ยวด้านล่างจะพยายามใส่คีย์เวิร์ดเพื่อให้เวลาคนค้นหาเจอใน Google ละกันครับจะใส่เท่าที่นึกออกจะได้หาเจอง่าย ๆ เลย
www subdomain https htaccess, htaccess www to non www support http and https, www in subdomain get blank page https