ก่อนอื่น โปรดทราบว่า การเปลี่ยนเส้นทางถาวรจะถูกเก็บไว้ โดยเว็บเบราว์เซอร์ของคุณ ดังนั้น หากคุณทำการเปลี่ยนแปลงและกำลังทดสอบการกำหนดค่าที่แก้ไข โปรดใช้ความระมัดระวังล่วงหน้าและ/หรือปรับวิธีการทดสอบของคุณ เพิ่มเติมเกี่ยวกับเรื่องนั้น ที่นี่.
IMHO การกำหนดค่าของคุณเต็มไปด้วยข้อผิดพลาดและสมมติฐานที่ไม่ถูกต้อง
ห้ามเปิดใช้งาน / อนุญาตคำขอพร็อกซี !!!
ProxyPreserveHost เปิด
ProxyRequests บน
พร็อกซี่ผ่าน On
<หนังสือมอบฉันทะ *>
คำสั่งปฏิเสธอนุญาต
อนุญาตจากทั้งหมด
</พร็อกซี่>
คำสั่งด้านบนคือการสร้าง ส่งต่อพร็อกซี. ที่แย่กว่านั้นคือ เปิด พร็อกซีที่สามารถและจะถูกละเมิดโดยใครก็ตามที่ต้องการซ่อนที่อยู่ IP ของพวกเขาโดยใช้เว็บเซิร์ฟเวอร์ของคุณ
คุณ ไม่ต้องการ ProxyRequests บน
สำหรับ ย้อนกลับ หนังสือมอบฉันทะ และ พร็อกซีพาส
แนวทางการทำงาน
โปรดลบสิ่งเหล่านั้นออก
ใน HTTP VirtualHost ของคุณ
เมื่อคุณมี VirtualHost เพียงอันเดียว มันจะกลายเป็น VirtualHost เริ่มต้น (สำหรับพอร์ตและที่อยู่นั้น) คำอธิบายที่ยาวขึ้น ที่นี่. ดังนั้นหากคุณไม่ได้กำหนดบล็อก VirtualHost เพิ่มเติม รายการเดี่ยวนี้:
<โฮสต์เสมือน *:80>
ServerAdmin [email protected]
ชื่อเซิร์ฟเวอร์ example.me
จะถูกใช้สำหรับคำขอ HTTP ธรรมดาทั้งหมด เช่น ทั้งสองอย่าง http://example.me/some-page.htm?foo=bar
, http://www.example.me
, http://your.ip-ที่อยู่/
เป็นต้น VirtualHost นั้นจะถูกใช้แม้ว่าจะไม่มีการระบุอย่างชัดเจนก็ตาม ServerAlias www.example.com
กำหนด www.example.com
เป็นชื่อโฮสต์สำรองสำหรับ VirtualHost นั้น ๆ
เปลี่ยนเส้นทางถาวร "/" "https://example.me/"
ระบุว่าคำขอทั้งหมดจะส่งผลให้เกิดการตอบกลับแบบเปลี่ยนเส้นทางไปยัง https://example.me/
กล่าวอีกนัยหนึ่ง:
http://example.me/some-page.htm?foo=bar ==> https://example.me/some-page.htm?foo=bar
http://www.example.me ==> https://example.me/
http://your.ip-address/bob/is.awe-some ==> https://example.me/bob/is.awe-some
เมื่อคุณเปลี่ยนเส้นทางทุกอย่างออกไป ก็ไม่มีเหตุผลที่จะมีคำสั่งอื่นใดที่ปกติจะแสดงเนื้อหาใน VirtualHost นั้น ดังนั้นคุณจึงสามารถละเว้น DocumentRoot
, พร็อกซีพาส
ฯลฯ และเก็บ http VirtualHost ธรรมดาที่น้อยที่สุด:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.me
UseCanonicalName Off
Redirect permanent "/" "https://example.me/"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ใน HTTPS VirtualHost ของคุณก็เช่นเดียวกัน: หากไม่มี VirtualHost อื่น จะเป็นค่าเริ่มต้นที่ใช้สำหรับคำขอใดๆ
สิ่งเดียวคือใบรับรอง TLS ของเซิร์ฟเวอร์ ที่ถูกต้องสำหรับชื่อโฮสต์ที่อยู่ในนั้นเท่านั้น ชื่อโฮสต์อื่นๆ จะส่งผลให้เกิดข้อผิดพลาด/คำเตือนของใบรับรองที่ไม่ถูกต้อง
คุณอาจต้องตรวจสอบเนื้อหาของไฟล์ที่คุณรวมไว้ที่นี่:
รวม /etc/apache2/sites-available/redirect.conf