
Custom Error Pages ช่วยให้คุณแสดงหน้าที่ออกแบบเองแทนหน้า Error เริ่มต้นของ Apache ทำให้เว็บดูมีระดับและช่วยนำผู้ใช้งานกลับสู่เนื้อหาที่ต้องการ
วิธีตั้งค่า Custom Error Pages ผ่าน DirectAdmin
- ล็อกอิน DirectAdmin แล้วไปที่ Advanced Features
- คลิก Custom Error Pages
- เลือก Error Code ที่ต้องการตั้งค่า เช่น
404 Not Found - ระบบจะเปิด Editor ให้แก้ไข HTML ของหน้า Error
- แก้ไขเนื้อหาตามต้องการ แล้วคลิก Save
Error Codes ที่ควรตั้งค่า
- 400 Bad Request — Request ไม่ถูกต้อง
- 401 Unauthorized — ต้องล็อกอินก่อน
- 403 Forbidden — ไม่มีสิทธิ์เข้าถึง
- 404 Not Found — ไม่พบหน้าที่ต้องการ
- 500 Internal Server Error — เซิร์ฟเวอร์มีปัญหา
ตัวอย่างหน้า 404 ที่ดี
หน้า 404 ที่ดีควรมี: ข้อความแจ้งว่าไม่พบหน้า, ลิงก์กลับหน้าหลัก, Search Box หรือรายการลิงก์ยอดนิยม เพื่อให้ผู้เยี่ยมชมยังคงอยู่ในเว็บแทนที่จะปิดออกไป
ทางเลือก: สามารถตั้ง Custom Error Pages ผ่านไฟล์ .htaccess ด้วยการเพิ่ม ErrorDocument 404 /404.html ซึ่งทำงานเหมือนกันและยืดหยุ่นกว่า
Custom Error Pages คืออะไรและทำไมถึงสำคัญ
Custom Error Pages คือหน้า HTML ที่เจ้าของเว็บออกแบบเองเพื่อแสดงแทนหน้า Error เริ่มต้นของ Apache เมื่อเกิด HTTP Error Code ต่างๆ เช่น 404 Not Found, 403 Forbidden หรือ 500 Internal Server Error แทนที่ผู้เยี่ยมชมจะเห็นข้อความ Error แห้งๆ ที่ไม่มีการออกแบบ พวกเขาจะได้เห็นหน้าที่มี Branding ของเว็บคุณครบถ้วน
ประโยชน์ของการสร้าง Custom Error Pages มีหลายด้าน ได้แก่:
- Branding ต่อเนื่อง — ผู้เยี่ยมชมยังเห็น โลโก้ สี และ Navigation ของเว็บคุณแม้เกิด Error
- ลด Bounce Rate — หน้า 404 ที่ดีมีลิงก์ให้คลิกต่อ แทนที่จะปล่อยให้ผู้ใช้ปิดหน้าต่างออกไป
- SEO Signal — Google มองว่าเว็บที่ดูแลประสบการณ์ผู้ใช้แม้ในหน้า Error มีคุณภาพมากกว่าเว็บที่ปล่อยหน้า Error แบบ Default
- ความน่าเชื่อถือ — ธุรกิจที่มีหน้า Error สวยงามดูมีความเป็นมืออาชีพกว่าคู่แข่งที่ไม่ได้ตั้งค่า
โดยเฉพาะ Error 404 ที่พบบ่อยที่สุด — เกิดจากการพิมพ์ URL ผิด ลิงก์ที่ถูกลบ หรือการเปลี่ยน URL Structure ของเว็บ ถ้าหน้า 404 ของคุณออกแบบดี โอกาสที่ผู้เยี่ยมชมจะนำทางต่อภายในเว็บของคุณสูงขึ้นอย่างชัดเจน
การสร้างหน้า 404 Custom ที่ดี ควรมีอะไรบ้าง
หน้า 404 ที่มีประสิทธิภาพไม่ได้แค่บอกว่า "ไม่พบหน้า" แต่ต้องช่วยนำทางผู้ใช้ต่อไปด้วย องค์ประกอบที่ควรมีในหน้า 404 ที่ดีได้แก่:
- ข้อความที่ชัดเจนและเป็นมิตร — บอกว่าหน้าที่ต้องการไม่มีอยู่ในเว็บ พร้อมคำขอโทษสั้นๆ โดยไม่ต้องใช้ศัพท์เทคนิค
- ลิงก์กลับหน้าหลัก — ปุ่มหรือลิงก์ที่เห็นชัดเจนพาผู้ใช้กลับไปยัง Homepage
- Search Box — ช่องค้นหาให้ผู้ใช้หาเนื้อหาที่ต้องการเองได้ทันที
- ลิงก์หน้ายอดนิยม — เสนอ 3-5 หน้าที่เข้าชมบ่อยที่สุดหรือสินค้า/บริการหลักของเว็บ
- ลิงก์ Sitemap หรือหมวดหมู่ — ช่วยให้ผู้ใช้ Browse เนื้อหาที่มีอยู่ได้ง่ายขึ้น
- Navigation Bar ปกติ — Header และ Nav ของเว็บหลักต้องปรากฏบนหน้า 404 ด้วย ไม่ใช่หน้าเปล่า
- ข้อมูลติดต่อ — ถ้าเป็นเว็บธุรกิจ ใส่ Email หรือช่องทางติดต่อเพื่อให้ผู้ใช้แจ้งปัญหาได้
สิ่งที่ควรหลีกเลี่ยงบนหน้า 404 ได้แก่ ข้อความแสดงความผิดพลาดที่ยาวหรือดูน่ากลัว, การ Redirect อัตโนมัติไปหน้าหลักโดยไม่แจ้ง (Google ไม่ชอบ เพราะทำให้ดูเหมือน Soft 404) และหน้าที่โหลดช้าหรือมีองค์ประกอบหนักเกินไป
การตั้ง Custom Error Pages ใน .htaccess ด้วย ErrorDocument
นอกจากการตั้งค่าผ่าน DirectAdmin GUI แล้ว คุณยังสามารถกำหนด Custom Error Pages ได้โดยตรงในไฟล์ .htaccess ที่โฟลเดอร์ public_html ซึ่งวิธีนี้ยืดหยุ่นกว่าและทำงานได้กับทุก Addon Domain บน Account เดียวกัน
รูปแบบ Directive ที่ใช้คือ ErrorDocument ตามด้วย HTTP Error Code และ Path ของหน้า Error ที่คุณสร้างไว้ ตัวอย่างเช่น:
ErrorDocument 404 /errors/404.htmlErrorDocument 403 /errors/403.htmlErrorDocument 500 /errors/500.html
ข้อสำคัญเรื่อง Path ที่ต้องรู้:
- Absolute Path (ขึ้นต้นด้วย /) — เช่น
/errors/404.htmlApache จะหาไฟล์จาก Document Root เสมอ ใช้งานได้กับทุก Subdirectory และ Addon Domain - Relative Path (ไม่มี /) — Apache บางเวอร์ชันรองรับ แต่อาจเกิดปัญหาถ้า Error เกิดในโฟลเดอร์ย่อย แนะนำให้ใช้ Absolute Path เสมอเพื่อความสม่ำเสมอ
- Full URL — เช่น
https://example.com/errors/404.htmlได้ แต่ Apache จะ Redirect (302) แทนที่จะใช้ Status Code เดิม ซึ่งอาจกระทบ SEO
หลังจากเพิ่ม Directive ใน .htaccess แล้ว ต้องสร้างไฟล์ HTML ที่ Path ที่กำหนดให้ครบทุก Error Code ที่ตั้งค่าไว้ด้วย มิฉะนั้น Apache จะ Loop กลับมาแสดง Error เองอีกรอบ
ข้อผิดพลาดที่พบบ่อยเมื่อตั้ง Custom Error Pages
ผู้ใช้หลายคนพบปัญหาหลังตั้งค่า Custom Error Pages เสร็จแล้วพบว่าหน้า Error ยังไม่แสดงตามที่ตั้งไว้ ต่อไปนี้คือปัญหาที่พบบ่อยและวิธีแก้ไข:
- Redirect Loop ใน .htaccess — เกิดเมื่อ ErrorDocument ชี้ไปยัง URL ที่มี RewriteRule อื่นบังคับ Redirect อยู่ ทำให้ Apache วนซ้ำ วิธีแก้คือใช้ Path แบบ Static ที่ไม่ผ่าน RewriteRule หรือเพิ่ม
RewriteCond %{REQUEST_URI} !^/errors/เพื่อยกเว้นโฟลเดอร์ errors จาก RewriteRules - หน้า 500 แสดงผลไม่ได้เมื่อ Server มีปัญหาจริง — ถ้าไฟล์ 500.html มี PHP Script หรือใช้ include/require จาก Server อื่น เมื่อ PHP เกิด Fatal Error ไฟล์เหล่านี้จะทำงานไม่ได้ด้วย ต้องทำ 500.html เป็น Static HTML ล้วนโดยไม่มี PHP
- ไฟล์ Error Page หนักเกินไป — หน้า 404 ที่โหลด JavaScript ขนาดใหญ่หรือ External Font อาจโหลดช้า โดยเฉพาะเมื่อ Error เกิดขึ้นบ่อย ควรทำให้ Error Pages เบาที่สุดเท่าที่จะทำได้
- Path ผิดเพราะ Addon Domain — Addon Domain มี Document Root ของตัวเอง ถ้าตั้ง
ErrorDocument 404 /errors/404.htmlใน .htaccess ของ Addon Domain ต้องสร้างไฟล์ที่/home/user/domains/addon.com/public_html/errors/404.htmlไม่ใช่ที่ Root Domain - Browser Cache แสดงหน้า Error เก่า — เมื่อแก้ไขหน้า 404 แล้วแต่ยังเห็นหน้าเดิม ให้ Clear Cache หรือทดสอบใน Incognito Window เพื่อดูผลจริง
ทดสอบ Custom Error Pages ของคุณเสมอหลังตั้งค่าเสร็จโดยการพิมพ์ URL ที่ไม่มีอยู่ในเบราว์เซอร์ เช่น https://yourdomain.com/this-page-does-not-exist-test-123 เพื่อยืนยันว่าหน้า 404 แสดงผลถูกต้อง
ข้อควรรู้เพิ่มเติม: ทดสอบหน้า Error ทุกอันหลังตั้งค่าเสร็จโดยพิมพ์ URL ที่ไม่มีอยู่จริงในเบราว์เซอร์ เปิด DevTools แท็บ Network แล้วตรวจว่า Status Code ที่ส่งกลับตรงกับ Error Code ที่ตั้งไว้ ไม่ใช่ 200 OK
SEO และ Custom Error Pages: สิ่งที่ Google มองเห็น
Google Crawlers จะทำการ Crawl และประเมิน Custom Error Pages ของคุณเช่นเดียวกับหน้าอื่นๆ สิ่งสำคัญที่ต้องรู้เกี่ยวกับ SEO และ Error Pages ได้แก่:
- HTTP Status Code ต้องถูกต้อง — หน้า 404 ต้องส่ง Status 404 กลับไป ไม่ใช่ 200 OK (เรียกว่า Soft 404) มิฉะนั้น Google จะคิดว่าหน้านั้นมีเนื้อหาจริงและอาจ Index หน้า Error เข้าไปใน Search Result
- ใส่ Noindex บนหน้า Error — เพิ่ม
<meta name="robots" content="noindex">ในหน้า Error Pages ทุกอัน เพื่อป้องกันไม่ให้ Google Index หน้า Error - ไม่ต้องใส่ Canonical บนหน้า Error — หน้า Error ไม่ควรมี Canonical Tag เพราะมันไม่ใช่หน้าเนื้อหาจริงของเว็บ
- ตรวจ Search Console — Google Search Console จะแจ้งเตือนเมื่อ Googlebot พบ 404 บ่อยผิดปกติ ซึ่งเป็น Signal ที่ดีว่ามีลิงก์หัก หรือ URL เก่าที่ยังมีคนลิงก์มาแต่ถูกลบไปแล้ว
ต้องการ Hosting พร้อม .htaccess เต็มรูปแบบ?
AsiaGB Hosting รองรับ .htaccess และ Custom Error Pages ในทุกแพ็กเกจ
ดูแพ็กเกจ Hosting