HTTP Error 404 หมายถึงอะไร แก้ไขอย่างไร

ข้อความ HTTP Error 404 ในการเข้าไปยังเว็บไซต์ เป็นการตอบสนองมาตรฐานซึ่งบ่งชี้ว่าฝั่งไคลเอนต์สามารถติดต่อกับเซิร์ฟเวอร์ที่กำหนดได้ หากแต่เซิร์ฟเวอร์หาไม่พบ ด้วยเหตุนี้ “404 Not Found” จึงขึ้นมา เมื่อผู้ใช้พยายามเข้าลิงก์ที่เสียไปแล้ว และข้อผิดพลาด 404 เป็นหนึ่งในข้อผิดพลาดอันพบง่ายที่สุด

อธิบายอย่างเจาะลึก

เมื่อมีการติดต่อผ่านทาง HTTP เซิร์ฟเวอร์ต้องตอบสนองกับการร้องขอ เช่น Web Browser จะส่งคำร้องขอเอกสาร HTTP ด้วยรหัสตอบสนองแบบตัวเลข ข้อความก็จะปรากฏขึ้นมาว่าอนุญาตหรือไม่อนุญาต ทั้งนี้ขึ้นอยู่กับรหัสสถานภาพด้วย

โดย 4 แสดงถึงความผิดพลาดของไคลเอนต์ เช่น การพิมพ์ URL ผิด และตัวเลข 04 ระบุสาเหตุของความผิดพลาดที่พบ HTTP ใช้ระบบรหัส 3 ตัวในลักษณะนี้ มีความคล้ายคลึงกับรหัสใช้ในโพรโทคอลก่อนหน้าอย่างเช่น FTP หรือ NNTP สำหรับรหัสตอบสนอง 404 จะตามมาด้วยข้อความที่ระบุถึงสาเหตุ

ความผิดพลาด 404 นี้มักพบได้ในกรณีหน้าเว็บไซต์ดังกล่าวถูกลบไป ในกรณีแรกจะเป็นแบบ 301 Moved Permanently  เช่นมีการเปลี่ยนชื่อ URL เป็นต้น สำหรับในกรณีที่ 2 ควรตอบสนองด้วย 410 Gone โดยความผิดพลาดแบบ 404 ไม่ควรนำไปสับสนกับความผิดพลาดของ DNS เมื่อคุณกรอก URL ไปยังชื่อเซิร์ฟเวอร์ที่ไม่มีอยู่ แต่ความผิดพลาดแบบ 404 นั้นเป็นการระบุว่าพบเซิร์ฟเวอร์ แต่ไม่สามารถเปิดได้

วิธีแก้ไข HTTP Error 404 โดยผู้ดูแลเว็บไซต์

วิธีแก้ไข HTTP Error 404 ใน Wordress

สำหรับเว็บไซต์ที่สร้างด้วย Wordress และมันแสดงหน้า Error 404 ขึ้นมาโดยปัญหานี้คุณแก้ไขได้ไม่ยาก ดังนี้

  • เริ่มจากไปยัง หน้าจัดการ server VestaCP ของคุณ
  • ไปยัง Tab เมนูด้านบน หลังจากนั้นกดไปยังเมนูของเว็บไซต์
  • เลือก Domain ที่คุณต้องการจะแก้ไข พร้อมกด Edit ก็จะมีเมนูขึ้นมา เมื่อมาถึงตอนนี้ให้คุณชี้โดเมนและเลื่อนลงมาตรง Web Template NGINX แก้จาก Default ให้เป็น wordpress2
  • นอกจากนี้ถ้าคุณติดตั้ง Nginx แบบอื่นๆ เช่น LEMP คุณก็สามารถแก้ไขไฟล์ยัง etc/nginx/sites-enabled/example.com.conf ได้โดยตรง โดยให้คุณเพิ่มไฟล์ลงไป 1 บรรทัด ได้แก่

try_files $uri $uri/ /index.php?args

เพียงท่านี้ก็เป็นอันเสร็จสิ้น หลังจากนั้นให้คุณพิมพ์เพื่อเริ่มการทำงานของ nginx และ vestaCP รวมทั้ง Clear cache ของ plugin cache หรือ Cloudflare ถ้าคุณใช้ สามารถป้อนคำสั่ง ดังนี้

  • sudo service nginx restart
  • sudo service vesta restart

แล้วทำการเปิดเว็บไซต์ใหม่ เพียงเท่านี้เว็บไซต์ก็จะกลับมาแสดงผลตามปกติอย่างแน่นอน

วิธีแก้ไข HTTP Error 404 ด้วยวิธี redirect

สำหรับหลายคนๆที่ทำเว็บไซต์ Joomla 3.x แล้วประสบปัญหา HTTP Error 404 ตามปกติตัว joomla จะทำการ redirect ไปยังหน้า 404  error เอง แต่ถ้าคุณไม่ต้องการแบบนั้น หรืออยากให้มันนำไปยังหน้าโฮมเพจ วันนี้เราก็มีวิธีดีๆมาบอกกัน

  • ใช้ FTP ไปหาไฟล์ในโฟลเดอร์ template ของคุณ
  • edit ไฟล์ชื่อ php
  • มองหาช่วงที่เขียนว่า defined(‘_JEXEC’) or die(‘Restricted index access’);
  • พร้อมเติม code ชุดนี้ลงไป
  • if (($this->error->getCode()) == ‘404’) {
  • header(‘Location: http://www.happykorat.com/index.php’);
  • exit;
  • ในส่วนของลิ้ง คุณสามารถแก้เป็นลิ้งอื่นๆ ได้ตามใจต้องการเลย

จากนั้นก็ทำการ SAVE