ฉันได้ติดตั้ง SSL ผ่าน certbot และไซต์ทั้งหมดของฉันสามารถเข้าถึงได้ผ่าน SSL
อย่างไรก็ตาม เมื่อใช้ http ใน URL ของเบราว์เซอร์ เฉพาะอันที่ 1 จากด้านล่างเท่านั้นที่จะถูกเปลี่ยนเส้นทางไปที่ https ส่วนอื่นๆ จะไม่ถูกเปลี่ยนเส้นทางไปที่ https และยังคงอยู่ใน http ต่อไป
- มายโดเมน.คอม
- xx.mydomain.com
- yy.mydomain.com
สำหรับพอร์ต 80 ด้านล่างนี้เป็นเนื้อหาของตรรกะการเขียนซ้ำในไฟล์ virtualhosts:
RewriteEngine เปิดอยู่
RewriteCond %{SERVER_NAME} =mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=ถาวร]
สำหรับพอร์ต 443 ด้านล่างนี้คือเนื้อหาของโฮสต์เสมือน:
DocumentRoot /var/www/html
ชื่อเซิร์ฟเวอร์ mydomain.com
รวม /etc/letsencrypt/options-ssl-apache.conf
ServerAlias xx.mydomain.com
ServerAlias yy.mydomain.com
SSLCertificateFile /etc/letsencrypt/live/yy.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yy.mydomain.com/privkey.pem
อย่างที่คุณเห็น โดเมนและโดเมนย่อยชี้ไปที่ไดเร็กทอรีรากของเอกสารเดียวกัน
วิธีทำให้ URL ทั้งหมดที่แสดงในจุดด้านบนเปลี่ยนเส้นทางไปยัง https เมื่อป้อน http ในเบราว์เซอร์ ฉันไม่แน่ใจว่าจำเป็นต้องเปลี่ยนอะไรในตรรกะการเขียนใหม่ของพอร์ต 80 เพื่อให้ใช้งานได้กับโดเมนย่อยที่กำหนดค่าเป็นนามแฝงของเซิร์ฟเวอร์