สาเหตุที่ทำให้เกิด 404 หลังอัปเดต
- โครงสร้าง URL/SEF ของ Joomla เวอร์ชันใหม่ต่างจากเวอร์ชันเก่า
- การตั้งค่า Rewrite/SEF ไม่ถูกต้อง
- ไม่มีการตั้ง Redirect สำหรับลิงก์เดิมที่ถูกเปลี่ยน
- การอัพเดท ระบบจะเขียนไฟล์ทับ ส่วนที่เราเคยทำไว้
วิธีแก้ไข (มี 2 ทาง)
- ทำ Redirect — เหมาะเมื่อมี URL เก่าจำนวนมากที่ต้องเปลี่ยนเส้นทาง (แนะนำใช้ .htaccess หรือ Extension ของ Joomla)
- ทำ Error Page 404 ให้ Redirect — เหมาะเมื่ออยากให้ทุกหน้า 404 ย้ายไปหน้าเดียว เช่น หน้าแรก หรือหน้าแผนผังเว็บไซต์ (sitemap)
บทความนี้จะสอน วิธีที่ 2
ขั้นตอนการทำ Error Page 404 ให้ Redirect
1. เข้าสู่โฟลเดอร์เทมเพลต
ล็อกอินเข้า Hosting (ผ่าน FTP, SFTP หรือ File Manager) แล้วเปิดโฟลเดอร์:
/domains/ชื่อเว็บไซต์ของคุณ/public_html/templates/cassiopeia
(หากใช้เทมเพลตอื่น ให้เข้าโฟลเดอร์เทมเพลตนั้นแทน)

2. เปิดไฟล์ error.php
หาไฟล์ error.php ในโฟลเดอร์เทมเพลต หากไม่มีให้สร้างไฟล์ใหม่
3. เพิ่มโค้ด Redirect สำหรับ 404
เพิ่มโค้ดต่อไปนี้ในไฟล์ error.php — เพิ่มโค็ดตรงบรรทัดที่ 19
if ($this->error->getCode() == '404') { header('Location: https://youdomain.com/'); exit; }
หมายเหตุ: ถ้าคุณต้องการ Redirect ไปยังหน้าที่ไม่ใช่หน้าแรก ให้เปลี่ยน URL ใน header()

4. ทดสอบ
- เรียก URL ที่เคยขึ้น 404 — ควรถูก Redirect ไปยังหน้าใหม่ที่กำหนด
- ตรวจสอบหัว HTTP ว่าเป็น 302 หรือ 301 ตามที่ต้องการ (ใช้ DevTools หรือคำสั่ง curl)
- เช็ค Google Search Console เพื่อดูหน้าที่ถูกดึงออกหรือมีลิงก์เสีย
คำแนะนำเพิ่มเติม (Tip)
- ถ้ามีรายการ URL เก่าจำนวนมาก ควรทำ 301 Redirect ทีละรายการเพื่อรักษา SEO
- ใช้ Google Search Console เพื่อตรวจหา 404 ที่ยังคงค้างอยู่
- หากใช้งาน extension สำหรับ SEF/URL ให้ตรวจสอบการตั้งค่าและ re-generate route หากจำเป็น