ตามที่กล่าวไว้ในความคิดเห็น ไม่มีอะไรในการกำหนดค่าที่คุณโพสต์ที่จะทำให้เกิดสิ่งนี้ ไม่มีการเปลี่ยนเส้นทางเลยในการกำหนดค่าที่คุณโพสต์ นี่อาจเป็นข้อผิดพลาดในการกำหนดค่าใน CMS (Prestashop) ของคุณ
ปัญหาดูเหมือนจะเกิดขึ้นกับการเปลี่ยนเส้นทาง HTTP เป็น HTTPS ซึ่งกำลังลบเครื่องหมายทับที่จุดเริ่มต้นของเส้นทาง URL (ตามหลังชื่อโฮสต์ทันที)
อย่างไรก็ตาม คุณอาจสามารถ "แก้ปัญหา" ปัญหานี้ได้โดยใช้การเปลี่ยนเส้นทาง HTTP เป็น HTTPS (และไม่ใช่ www ไปยัง www) ใน .htaccess
- ซึ่งเกิดขึ้นก่อนที่ CMS ของคุณจะทำอะไรได้ ดังนั้น CMS ของคุณไม่จำเป็นต้องเปลี่ยนเส้นทางคำขอ
ตัวอย่างเช่น สมมติว่าคุณมีเซิร์ฟเวอร์มาตรฐานที่เหมาะสม โดยที่ SSL ได้รับการจัดการโดยแอปพลิเคชันเซิร์ฟเวอร์ (ไม่มีพร็อกซี SSL เช่น Cloudflare เป็นต้น) คุณสามารถทำสิ่งต่อไปนี้ที่ด้านบนสุดของ .htaccess
ไฟล์ก่อนหน้า #~~เริ่ม~~
ความคิดเห็น
# เปลี่ยนเส้นทางที่ไม่ใช่ www เป็น www + HTTPS
RewriteCond %{HTTP_HOST} ^(example\.com) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
# เปลี่ยนเส้นทาง HTTP เป็น HTTPS (คำขอที่เหลือ)
RewriteCond %{HTTPS} =ปิด
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
หมายเหตุ: ทดสอบครั้งแรกด้วยการเปลี่ยนเส้นทาง 302 (ชั่วคราว) เพื่อหลีกเลี่ยงปัญหาการแคชที่อาจเกิดขึ้น
อัปเดต:
ฉันพยายามเพิ่มบรรทัดที่คุณเขียนด้านบน แต่ไม่มีอะไรเปลี่ยนแปลง
นี่หมายความว่าคุณมี HTTP เป็น HTTPS ที่มีรูปแบบไม่ถูกต้องในการกำหนดค่าเซิร์ฟเวอร์เอง (ซึ่งดำเนินการก่อนหน้านี้ .htaccess
)
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
หากนี่คือการกำหนดค่าจริงของคุณ แสดงว่าคุณไม่มีเครื่องหมายทับต่อท้าย URL เป้าหมาย! ซึ่งจะส่งผลให้เกิดการเปลี่ยนเส้นทางที่ผิดรูปแบบ (ไม่มีเครื่องหมายทับหลังโดเมน) ที่คุณเห็น
มันควรจะเป็น:
เปลี่ยนเส้นทางถาวร / https://www.example.com/
คุณจะต้องแน่ใจว่าแคชของเบราว์เซอร์นั้นชัดเจนก่อนทำการทดสอบ เนื่องจากจะมีการแคชการเปลี่ยนเส้นทางที่ผิดพลาด