ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์CMS & Free Script10 ขั้นตอนทำ Custom Error page 404 ใน Joomla! อย่างง่าย (ไม่้ต้องพึ่ง component)
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: 10 ขั้นตอนทำ Custom Error page 404 ใน Joomla! อย่างง่าย (ไม่้ต้องพึ่ง component)  (อ่าน 5218 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
win
Administrator
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 143
ออฟไลน์ ออฟไลน์

กระทู้: 5,849



ดูรายละเอียด
« เมื่อ: 31 ธันวาคม 2008, 04:09:05 »

 Tongue พอดีเพิ่งทำเสร็จ เลยมาเขียนไว้กันลืมครับ เผื่อใครสนใจจะทำ จะได้ไม่ต้องเสียเวลาคลำทางแบบผม

๋ที่ผมทดลองทำคือ Joomla 1.5x นะครับ

วิธีการนี้จะทำให้

-คนที่เข้า url ผิด, URL ที่หาไม่พบ ผู้ใช้จะถูกพามาหน้า error page ก่อน

-หน้า error page ที่ดีควรมีข้อความต้อนรับ และแนะนำ link ที่เป็นประโยชน์ หรือมีกล่องค้นหาบริการผู้ใช้
ดูตัวอย่างไอเดียทำหน้า error page ได้ที่นี่
http://www.smashingmagazine.co...8/17/404-error-pages-reloaded/

-รูปแบบ error page ควรเป็นรูปแบบเดียวกับ website ของเรา ก็คือเทมเพลต สีสัน ตำแหน่งเมนู

-HTTP status code ต้องตอบรับเป็น HTTP/1.0 404 Not Found เพื่อให้ search engine เข้าใจได้ถูกต้อง

ขั้นตอน

1.ไปสร้างหน้า custom404 ขึ้นมาเองก่อน โดยไปสร้างที่ article manager แล้ว create new content โดยไม่ต้องระบุ section หรือ category (ก็คือเลือกที่ uncategorized นั่นเอง) ก็ publish ไปตามขั้นตอน
 
2.เลือกให้ article ดังกล่าวแสดงขึ้นมาใน menu ใดก็ได้ เพื่อจะกดดูหน้าจริงๆ (จะลบออกจาก menu ภายหลัง)

3.เมื่อเปิดหน้าจริงขึ้นมาแล้ว ก็ view > page source copy เก็บไว้ัทั้งหมด เสร็จขั้นนี้ก็ไปลบ article นี้ออกจาก menu ที่ตั้งตามข้อ 2 ได้

4.จาก File Manager หรือ FTP ให้เข้าไปที่ /templates/system แล้วหาไฟล์ error.php ให้ copy file ตัวนี้ไปที่ root ของ templates/ชื่อเทมเพลตที่เราเลือกใช้

5.ถึงเวลาดัดแปลง โดยจาก file ที่ copy มาตามข้อ 4 ให้ลบตั้งแต่บรรทัด <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> ออกให้หมด เว้นเหลือไว้แต่ส่วนบนดัง code ด้านล่าง
โค๊ด:
<?php
/**
 * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// no direct access
defined( &#39;_JEXEC&#39; ) or die( &#39;Restricted access&#39; );
?>

ุ6. เสร็จแล้ว เพิ่ม code นี้เข้าไปต่อท้าย code ตามข้อ 5
โค๊ด:
<?php 
if ($this->error->code = &#39;404&#39;) {
        
header("HTTP/1.0 404 Not Found");
?>

7. เอา page source ที่เตรียมไว้ตามข้อ 3 มา  paste ต่อท้าย code ข้อ 6

8. ถ้าอยากจะทำ refresh ไป url อื่นโดยอัตโนมัติหลังจากผู้ใช้มาเจอ error page ก็ทำได้ โดยเติม code นี้ถัดจาก tag <head>

โค๊ด:
<meta http-equiv="refresh" content="10;url=http://www.yourdomain.com/">

โดยหลัง url= ก็เติม path url ที่ต้องการให้ผู้ใช้ไปเจอ ระยะเวลาควรจะตั้งอย่างน้อย 10 วินาที

9. ทำการทดลองพิมพ์ URL เว็บเรา แล้วต่อท้ายด้วยอักษรมั่วๆ ดู เช่น http://www.yourdomain.com/asdfgjkl1234

ซึ่งถ้าทุกอย่างทำมาถูกต้อง รูปแบบเว็บเพจที่ปรากฎขึ้น จะต้องเป็นรูปแบบเหมือนกับที่เราทำไว้ตามข้อ 1 ไม่ผิดเพี้ยน

และถ้าเราตั้ง auto refresh ตามข้อ 8  ก็ลองรอดู 10 วินาทีหรือตามเวลาที่ตั้งไว้ มันจะเปลี่ยนไปหน้าที่เราตั้งไว้หรือเปล่า

10. ลองเช็คดูว่ามีการตอบรับเป็น HTTP/1.0 404 Not Found จริงหรือเปล่า โดยเช็คได้ที่เว็บนี้
http://www.404checker.com/404-checker

ก็ลองพิมพ์ URL เว็บเราต่อท้ายด้วยอักษรมั่วๆ ดู เช่น http://www.yourdomain.com/asdfgjkl1234
แล้วกดปุ่ม Check Status
แล้วดูผลตอบรับ ถ้าขึ้นว่า 404 Not Found ก็ใช้ได้



เท่านี้ก็เสร็จเรียบร้อยแล้วครับ
บันทึกการเข้า
win
Administrator
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 143
ออฟไลน์ ออฟไลน์

กระทู้: 5,849



ดูรายละเอียด
« ตอบ #1 เมื่อ: 31 ธันวาคม 2008, 04:09:17 »

ข้อมูลอ้างอิง

http://docs.joomla.org/Custom_error_pages
บันทึกการเข้า
smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 643
ออฟไลน์ ออฟไลน์

กระทู้: 8,272



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 31 ธันวาคม 2008, 04:20:25 »

 Tongue Shocked ขอบคุณครับที่แชร์
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
Kaeji
ก๊วนเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 436



ดูรายละเอียด
« ตอบ #3 เมื่อ: 31 ธันวาคม 2008, 05:25:31 »

Kiss
« แก้ไขครั้งสุดท้าย: 10 กรกฎาคม 2010, 21:54:31 โดย Kaeji » บันทึกการเข้า

"Better to write for yourself and have no public, than to write for the public and have no self.", Cyril Connolly (1903–1974).
หน้า: [1]   ขึ้นบน
พิมพ์