ปัญหาการ redirect หน้าเมื่อมีการส่งสถานะ 404 ด้วย php header
ปัญหานี้เกิดขึ้นกับเว็บที่ใช้ GCMS ครับ ลักษณะของปัญหาคือ เมื่อมีการส่งสถานะ 404 ออกมา ในกรณ๊ที่ไม่สามารถเรียกหน้าเว็บไซต์ได้ (ไม่ว่าด้วยสาเหตุใดก็ตาม เช่น ไม่พบโมดูล หรือ ไม่มีสิทธิ) ตัว GCMS จะคืนค่าสถานะของ Server เป็น 404 และแสดงข้อความเตือนที่โมดูล แต่บน Server นี้ (ของลูกค้า) เมื่อมีการส่งสถานะ 404 ออกมา เว็บจะโหลดหน้าแรกมาแสดงผลแทนเสมอ
วิเคราะห์ปัญหา
1. เมื่อไม่พบหน้า หรือไม่มีสิทธิ์ GCMS จะส่งสถานะ 404 ออกมา
2. Server ทำการ redirect ไปยังหน้า 404 ของ Server เอง
3. เมื่อพบสถานะ 404 .htaccess จะทำการรีไดเร็คไปยังหน้า index ของ GCMS
นั่นเป็นขั้นตอนที่เกิดขึ้นเมื่อ GCMS ส่งสถานะ 404 ออกมา จากการวิเคราะห์ปัญหาข้างต้น ผมค่อนข้างมั่นใจว่าปัญหาเกิดขึ้นจาก Server (redirect) แต่ไม่รู้ว่าจุดไหน nginx หรือ apache ผมเลยส่งเรื่องกลับไปให้เจ้าของ Server จัด
ใช้เวลาหมดไป 1 วันกับการตรวจสอบ ได้รับแจ้งผล (เป็นเรื่องที่ยอดเยี่ยมมากที่ลูกค้า ส่งผลการดำเนินการกลับมา) ตามนี้ครับ
ปัญหาเกิดขึ้นจากการตั้งค่า ProxyErrorOverride ของ Apache เป็น on ไว้ ให้เปลี่ยนเป็น off เท่านั้น ที่ไฟล์ /etc/httpd/conf/extra/httpd-default.conf
https://httpd.apache.org/...l#ProxyErrorOverride
ข้อมูล Server ที่พบปัญหา
directadmin + debian 64bit
ซึ่งลูกค้าแจ้งว่าเป็นค่า default ของ directadmin นะครับ (อันนี้ผมไม่มั่นใจ เพราะอาการนี้ผมเพิ่งพบเป็นครั้งแรก)
วิเคราะห์ปัญหา
1. เมื่อไม่พบหน้า หรือไม่มีสิทธิ์ GCMS จะส่งสถานะ 404 ออกมา
2. Server ทำการ redirect ไปยังหน้า 404 ของ Server เอง
3. เมื่อพบสถานะ 404 .htaccess จะทำการรีไดเร็คไปยังหน้า index ของ GCMS
นั่นเป็นขั้นตอนที่เกิดขึ้นเมื่อ GCMS ส่งสถานะ 404 ออกมา จากการวิเคราะห์ปัญหาข้างต้น ผมค่อนข้างมั่นใจว่าปัญหาเกิดขึ้นจาก Server (redirect) แต่ไม่รู้ว่าจุดไหน nginx หรือ apache ผมเลยส่งเรื่องกลับไปให้เจ้าของ Server จัด
ใช้เวลาหมดไป 1 วันกับการตรวจสอบ ได้รับแจ้งผล (เป็นเรื่องที่ยอดเยี่ยมมากที่ลูกค้า ส่งผลการดำเนินการกลับมา) ตามนี้ครับ
ปัญหาเกิดขึ้นจากการตั้งค่า ProxyErrorOverride ของ Apache เป็น on ไว้ ให้เปลี่ยนเป็น off เท่านั้น ที่ไฟล์ /etc/httpd/conf/extra/httpd-default.conf
ProxyErrorOverride off
https://httpd.apache.org/...l#ProxyErrorOverride
ข้อมูล Server ที่พบปัญหา
directadmin + debian 64bit
ซึ่งลูกค้าแจ้งว่าเป็นค่า default ของ directadmin นะครับ (อันนี้ผมไม่มั่นใจ เพราะอาการนี้ผมเพิ่งพบเป็นครั้งแรก)