1 1 1 1 1
(3 Votes)
วิธีแก้ปัญหา Error 404 Page Not Found ในเว็บไซต์ Joomla
404%20Page%20not%20found วิธีแก้ปัญหา Error 404 Page Not Found ในเว็บไซต์ Joomla

สาเหตุที่ทำให้เกิด 404 หลังอัปเดต

  • โครงสร้าง URL/SEF ของ Joomla เวอร์ชันใหม่ต่างจากเวอร์ชันเก่า
  • การตั้งค่า Rewrite/SEF ไม่ถูกต้อง
  • ไม่มีการตั้ง Redirect สำหรับลิงก์เดิมที่ถูกเปลี่ยน
  • การอัพเดท ระบบจะเขียนไฟล์ทับ ส่วนที่เราเคยทำไว้

วิธีแก้ไข (มี 2 ทาง)

  1. ทำ Redirect — เหมาะเมื่อมี URL เก่าจำนวนมากที่ต้องเปลี่ยนเส้นทาง (แนะนำใช้ .htaccess หรือ Extension ของ Joomla)
  2. ทำ Error Page 404 ให้ Redirect — เหมาะเมื่ออยากให้ทุกหน้า 404 ย้ายไปหน้าเดียว เช่น หน้าแรก หรือหน้าแผนผังเว็บไซต์ (sitemap)

บทความนี้จะสอน วิธีที่ 2

ขั้นตอนการทำ Error Page 404 ให้ Redirect

1. เข้าสู่โฟลเดอร์เทมเพลต

ล็อกอินเข้า Hosting (ผ่าน FTP, SFTP หรือ File Manager) แล้วเปิดโฟลเดอร์:

/domains/ชื่อเว็บไซต์ของคุณ/public_html/templates/cassiopeia

(หากใช้เทมเพลตอื่น ให้เข้าโฟลเดอร์เทมเพลตนั้นแทน)

404 Page not found

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()

404 Page not found The requested page can

4. ทดสอบ

  1. เรียก URL ที่เคยขึ้น 404 — ควรถูก Redirect ไปยังหน้าใหม่ที่กำหนด
  2. ตรวจสอบหัว HTTP ว่าเป็น 302 หรือ 301 ตามที่ต้องการ (ใช้ DevTools หรือคำสั่ง curl)
  3. เช็ค Google Search Console เพื่อดูหน้าที่ถูกดึงออกหรือมีลิงก์เสีย

คำแนะนำเพิ่มเติม (Tip)

  • ถ้ามีรายการ URL เก่าจำนวนมาก ควรทำ 301 Redirect ทีละรายการเพื่อรักษา SEO
  • ใช้ Google Search Console เพื่อตรวจหา 404 ที่ยังคงค้างอยู่
  • หากใช้งาน extension สำหรับ SEF/URL ให้ตรวจสอบการตั้งค่าและ re-generate route หากจำเป็น