วิธีตั้งค่า Error Pages ใน cPanel (404, 403, 500)

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

วิธีตั้งค่า Error Pages ใน cPanel

Error Pages คืออะไร และทำไมต้องตั้งค่าเอง?

เมื่อผู้เยี่ยมชมพิมพ์ URL ผิด หรือเข้าถึงหน้าที่ไม่มีอีกต่อไป เว็บเซิร์ฟเวอร์จะแสดงหน้า "Error" ให้โดยอัตโนมัติ ซึ่งโดยค่าเริ่มต้นมักเป็นหน้าขาวๆ ธรรมดาที่บอกเพียงว่า "Not Found" หรือ "Internal Server Error" โดยไม่มีการนำทางกลับไปที่เว็บไซต์ของคุณ

การตั้งค่า Error Pages เองใน cPanel ช่วยให้คุณ:

ประเภท Error Codes ที่ควรรู้จัก

ก่อนเข้าสู่ขั้นตอนการตั้งค่า มาทำความรู้จัก HTTP Error Codes ที่พบบ่อยที่สุดในการทำเว็บไซต์:

ในบทความนี้จะเน้นที่ 404, 403 และ 500 ซึ่งเป็น Error ที่พบบ่อยที่สุดและกระทบต่อประสบการณ์ผู้ใช้มากที่สุด

วิธีเปิดใช้ Error Pages ใน cPanel

cPanel มีเครื่องมือ Error Pages ในตัวที่ช่วยให้คุณกำหนดหน้า Error แบบกำหนดเองได้โดยไม่ต้องแก้ไขไฟล์ .htaccess ด้วยตนเอง ทำตามขั้นตอนดังนี้:

  1. เข้าสู่ระบบ cPanel ของคุณ (โดยทั่วไปคือ https://yourdomain.com:2083)
  2. เลื่อนลงหาหมวด Advanced หรือค้นหาคำว่า "Error"
  3. คลิกที่ไอคอน Error Pages
  4. เลือก โดเมนหรือ subdomain ที่ต้องการตั้งค่าจาก dropdown ด้านบน
  5. คุณจะเห็นรายการ Error Codes ให้เลือก เช่น 404, 403, 500 เป็นต้น
  6. คลิกที่ Error Code ที่ต้องการแก้ไข (เช่น 404 (Not Found))
  7. cPanel จะแสดง Text Editor พร้อม HTML ตัวอย่าง ให้คุณแก้ไขได้ทันที
  8. เมื่อแก้ไขเสร็จ คลิก Save
Tip: cPanel จะบันทึกไฟล์ Error Pages ไว้ที่ public_html/errors/404.shtml หรือในบางกรณีคือ public_html/cperror/ ขึ้นอยู่กับเวอร์ชัน cPanel ของ Hosting ที่คุณใช้

ตัวอย่าง HTML สำหรับหน้า 404 แบบมืออาชีพ

หน้า 404 ที่ดีควรมี: ข้อความแจ้งอย่างเป็นมิตร, ลิงก์กลับหน้าแรก, และอาจมีช่องค้นหาเพิ่มเติม นี่คือตัวอย่าง HTML ที่คุณสามารถวางในช่อง Editor ของ cPanel ได้เลย:

<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8">
  <title>ไม่พบหน้าที่ต้องการ (404) — ชื่อเว็บไซต์</title>
  <style>
    body { font-family: sans-serif; text-align: center; padding: 60px 20px; background: #f9fafb; color: #374151; }
    h1 { font-size: 4rem; color: #15803d; margin: 0; }
    h2 { font-size: 1.5rem; margin: .5rem 0 1rem; }
    p { color: #6b7280; max-width: 400px; margin: 0 auto 1.5rem; }
    a.btn { background: #15803d; color: #fff; padding: .7rem 1.5rem; border-radius: 8px; text-decoration: none; font-weight: 600; }
    a.btn:hover { background: #166534; }
  </style>
</head>
<body>
  <h1>404</h1>
  <h2>ไม่พบหน้าที่คุณต้องการ</h2>
  <p>อาจเป็นเพราะ URL ผิด หรือหน้านี้ถูกย้ายหรือลบออกไปแล้ว</p>
  <a href="/" class="btn">← กลับหน้าแรก</a>
</body>
</html>

ตั้งค่า Error Pages ผ่านไฟล์ .htaccess (วิธีเสริม)

นอกจากใช้ Error Pages ใน cPanel โดยตรง คุณยังสามารถกำหนดไฟล์ Error Page เองได้ผ่าน .htaccess ซึ่งให้ความยืดหยุ่นมากขึ้น เช่น ชี้ไปยังไฟล์ HTML ของคุณเอง:

# ไฟล์ .htaccess ในโฟลเดอร์ public_html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 403 /errors/forbidden.html
ErrorDocument 500 /errors/server-error.html

โดยคุณต้องสร้างโฟลเดอร์ errors/ ใน public_html แล้วสร้างไฟล์ HTML แต่ละไฟล์ตามที่กำหนด จากนั้น cPanel จะอ่านคำสั่งจาก .htaccess โดยอัตโนมัติ

Tip: หาก Hosting ของคุณใช้ WordPress ระบบ WordPress จะจัดการ 404 ผ่าน Theme ของมันเอง ไม่ต้องตั้ง Error Pages ใน cPanel เพิ่มเติม แต่ Error 403 และ 500 ยังต้องตั้งค่าเพิ่มเองได้

ตั้งค่าหน้า 403 Forbidden และ 500 Server Error

ทำตามขั้นตอนเดียวกับ 404 แต่เลือก Error Code ที่ต้องการ:

หน้า 403 Forbidden

ใช้เมื่อผู้เยี่ยมชมพยายามเข้าถึงโฟลเดอร์หรือไฟล์ที่ไม่ได้รับอนุญาต ควรอธิบายว่าพวกเขาไม่มีสิทธิ์เข้าถึงและแนะนำให้ไปหน้าอื่น:

<h1>403 — ไม่อนุญาตให้เข้าถึง</h1>
<p>คุณไม่มีสิทธิ์เข้าถึงหน้านี้</p>
<a href="/">กลับหน้าแรก</a>

หน้า 500 Internal Server Error

ใช้เมื่อเว็บไซต์มีข้อผิดพลาดในสคริปต์ PHP หรือ .htaccess ควรแจ้งว่ากำลังแก้ไขปัญหาอยู่และให้ผู้ใช้ลองใหม่อีกครั้ง:

<h1>500 — เกิดข้อผิดพลาดในเซิร์ฟเวอร์</h1>
<p>ขออภัย เว็บไซต์มีปัญหาชั่วคราว กรุณาลองใหม่ภายหลัง</p>
<a href="/">กลับหน้าแรก</a>

แนวทางออกแบบ Error Pages ที่ดี

Error Page ที่ดีไม่ได้มีแค่ข้อความ "ไม่พบ" แต่ควรช่วยให้ผู้เยี่ยมชมยังอยู่บนเว็บของคุณต่อไป:

ตรวจสอบว่า Error Pages ทำงานถูกต้อง

หลังตั้งค่าเสร็จแล้ว ให้ทดสอบว่าหน้า Error แสดงผลถูกต้องด้วยการพิมพ์ URL ที่ไม่มีอยู่จริง:

# ทดสอบ 404 — พิมพ์ URL ที่ไม่มีอยู่ในเบราว์เซอร์
https://yourdomain.com/this-page-does-not-exist-test123

# ทดสอบ 403 — ลองเข้าโฟลเดอร์ที่ไม่มี index ไฟล์
https://yourdomain.com/cgi-bin/

# ตรวจสอบ HTTP Status Code ด้วย curl (ถ้ามี)
curl -o /dev/null -s -w "%{http_code}" https://yourdomain.com/nonexistent

# ตรวจสอบด้วยเครื่องมือออนไลน์
https://httpstatus.io/
Tip: ใช้เว็บ httpstatus.io หรือ redirect-checker.org เพื่อตรวจสอบว่า URL ที่ไม่มีอยู่จริงคืนค่า Status Code 404 ไม่ใช่ 200 ซึ่งอาจสร้างปัญหา SEO Duplicate Content ได้

แก้ปัญหาที่พบบ่อย

Error: หน้า Error Page ของฉันไม่แสดงขึ้นมา ยังเห็นหน้าเดิมของ cPanel

ตรวจสอบว่า Browser Cache ไม่ได้แสดงหน้าเก่าอยู่ กด Ctrl+Shift+R (Windows/Linux) หรือ Cmd+Shift+R (Mac) เพื่อ Hard Refresh นอกจากนี้ ให้ตรวจดูว่าคุณบันทึกการตั้งค่าใน cPanel แล้วจริงๆ และเลือก Domain ถูกต้องใน Dropdown

Error: หน้า 404 ที่ตั้งค่าไม่ทำงานบน WordPress

WordPress มีระบบ 404 ของตัวเองผ่านไฟล์ 404.php ในธีม ซึ่งจะ Override การตั้งค่าใน cPanel ไปโดยอัตโนมัติ หากต้องการแก้ไขหน้า 404 สำหรับ WordPress ให้แก้ที่ ธีม > 404.php โดยตรงหรือใช้ Page Builder ของธีม

Error: ไฟล์ .htaccess ไม่ยอมรับคำสั่ง ErrorDocument

ตรวจสอบว่า .htaccess อยู่ในโฟลเดอร์ public_html ถูกต้อง และไม่มีข้อผิดพลาด Syntax อื่นๆ ในไฟล์ที่ทำให้ Apache ปฏิเสธไฟล์ทั้งหมด ลองดู cPanel > Error Logs เพื่อหาสาเหตุ

Error: หน้า Error แสดงแต่ไม่มีสไตล์ (CSS ไม่โหลด)

ปัญหานี้มักเกิดเมื่อใช้ Path แบบ Relative เช่น style.css แทนที่จะเป็น /style.css ให้เปลี่ยนทุก Path ใน HTML ของ Error Page เป็น Absolute Path ที่ขึ้นต้นด้วย / เสมอ

Error: Status Code 200 แทนที่จะเป็น 404

บาง Hosting หรือ WordPress Configuration ส่ง Status 200 ("Soft 404") แม้จะแสดงหน้า 404 ซึ่งกระทบ SEO อย่างมาก ตรวจสอบด้วย Google Search Console ในหมวด Coverage หรือใช้ httpstatus.io เพื่อตรวจสอบ Status Code จริง

คำถามที่พบบ่อย (FAQ)

Q: ควรใช้ไฟล์ .shtml หรือ .html สำหรับ Error Pages?

cPanel มักสร้างไฟล์ .shtml ซึ่งรองรับ Server Side Includes (SSI) ที่ช่วยให้คุณ Include ส่วนหัวและท้ายเว็บได้ แต่ถ้าไม่ได้ใช้ SSI ไฟล์ .html ก็ทำงานได้ปกติ ขึ้นอยู่กับว่า cPanel Hosting ของคุณรองรับอะไร

Q: Error Pages ที่กำหนดเองส่งผลต่อ SEO อย่างไร?

การมีหน้า 404 ที่ถูกต้อง (คืน Status Code 404 จริงๆ) ช่วย Google รู้ว่าหน้านั้นไม่มีอยู่และหยุด Crawl มันได้ Error Page ที่ดีช่วยลด Bounce Rate และทำให้ผู้ใช้อยู่บนเว็บได้นานขึ้น ซึ่งอาจส่งผลดีต่อสัญญาณ SEO ด้วย

Q: ตั้งค่า Error Pages แล้วต้องทำอะไรเพิ่มเติมไหม?

แนะนำให้ตรวจสอบ Google Search Console ทุกเดือนในหมวด Coverage > Not Found (404) เพื่อดูว่ามี URL ใดที่ Google พบว่าเป็น 404 และพิจารณา Redirect URL เก่าไปยังหน้าที่เกี่ยวข้องหรือหน้าแรก แทนการปล่อยให้เป็น 404 ตลอดไป