วิธี rewrite index.php ด้วย .htaccess บน Codeigniter

วิธี rewrite index.php ด้วย .htaccess บน Codeigniter

rewrite url codeigniter

gunoob.com ขอนำเสนอบทความเกี่ยวกับการ rewrite index.php ด้วย .htaccess บน Codeigniter แบบง่ายๆ เพื่อทำให้ URL ของเราดูสวย และสั้นลง มีผลต่อการทำ SEO ให้ได้ลำดับที่ดีอีกด้วย

การทำให้กาทำให้ URL สั้นลงนั้นส่งผลดีให้กับนักพัฒนา Codeigniter ในการเขียน Code ที่กระชับ สั้นลง และอ่านเข้าใจง่าย และยังส่งผลดีให้กับ Search engine ถือว่าเป็นการ Optimize URL ให้เหมาะสมและกระชับ เพราะการที่มี URL สั้นๆ Search Engine มักจะให้อันดับในการแสดงผลดีกว่า URL ที่ยาวและยุ่งเหยิง

นักพัฒนา Codeigniter ทราบดีอยู่แล้วว่า การเรียกใช้งาน URL ของ Codeigniter คือเรียกผ่านคลาส (class) ในลักษณะดังปรากฏด้านล่างนี้

http://ชื่อเว็บไซต์/index.php/ชื่อคลาส/ชื่อฟังก์ชั่น/ตัวแปร1/ตัวแปร2/…

เช่น https://www.gunoob.com/index.php/register/

จะเห็นว่ามีคำว่า index.php แทรกอยู่ โดยเราสามารถนำมันออกเพื่อไม่ให้แสดงบนแถบ URL เรียกว่าการ “rewrite” และยังแสดงผลเป็นปกติได้ และเราจะได้ลักษณะ URL แบบใหม่ดังลักษณะที่ปรากฏด้านล่างนี้

http://ชื่อเว็บไซต์/ชื่อคลาส/ชื่อฟังก์ชั่น/ตัวแปร1/ตัวแปร2/…

เช่น https://www.gunoob.com/register

ตามวิธีการของเว็บไซต์ทางการของ Codeigniter แนะนำให้สร้างไฟล์ .htaccess ไว้ที่โฟล์เดอร์ Root (Folder ที่อยู่นอกสุดที่เดียวกับที่เราเก็บเว็บของเราไว้) และนำข้อความด้านล่างนี้ กรอกเขาไปและบันทึก

แต่หากเรามี Folder อื่นๆนอกเหนือจากในนั้น เราจำเป็นต้องกำหนดค่าในบรรทัดที่ 2 เพิ่มเช่นผมมี Folder ที่เก็บไฟล์ css ผมจะต้องเพิ่มดังนี้

ซึ่งเราจำเป็นต้องกำหนดชื่อโฟลเดอร์เองตลอดเวลาหากมีการเพิ่มหรือลดโฟลเดอร์เราจำเป็นต้องแก้ไขไฟล์ .htaccess ทุกครั้ง

 

แต่เว็บ Gunoob.com ได้มีวิธีที่ง่ายกว่าคือเราไม่จำเป็นต้องไปกำหนดชื่อ Folder ทุกครั้งเพียงสร้างไฟล์ .htaccess ไว้ที่โฟลเดอร์ Root และ นำข้อความด้านล่างนี้ใส่เข้าไปแล้วทำการบันทึก

หรือ ดาวน์โหลดไฟล์ .htaccess แตกไฟล์ไปวางแล้วนำไฟล์ .htaccess ไว้ที่โฟลเดอร์นอกสุดของเว็บของเราเพียงเท่านี้เราก็สามารถใช้งาน URL โดยปราศจากคำว่า index.php ตามที่ต้องการแล้ว

หมายเหตุ

  1. เมื่อเรานำไฟล์ .htaccess ไปไว้ที่ root ของเว็บเราแล้ว เรายังคงสามารถเรียกใช้งาน index.php ได้อยู่ตลอดเวลา เช่น https://www.gunoob.com/index.php ระบบก็ยังคงแสดงผลปกติ หรือแม้แต่ https://www.gunoob.com/index.php/myclass ก็ยังคงแสดงผลอยู่เช่นเดิม
  2. ไฟล์ htaccess เป็นไฟล์ที่ใช้งานบน web server ของ Apache เท่านั้น ผู้ที่ใช้งานบน Web Server ตัวอื่นๆ เช่น IIS, Lighttpd อาจจำเป็นต้องศึกษาการดัดแปลงการใช้งานด้วยตัวเอง
  3. การ Rewrite URL เราจำเป็นต้องเปิดใช้งาน MOD_REWRITE บน Apache ก่อน​ โดยเข้าไปแก้ไขได้ในไฟล์ httpd.conf ของ Apache ก่อนแล้วทำการรีสตาร์ทคอมพิวเตอร์

หากมีข้อสงสัยใดๆ โปรดคอมเม้นท์ถามได้ในช่องด้านล่าง หากคิดว่าบทความนี้มีประโยชน์โปรดกด +1 Google Plus, กด Share ,Like Facebook ของเราด้วยเพื่อเป็นกำลังใจในการเขียนบทความที่ดีๆ มาเผยแพร่อีกตลอดไป ขอบพระคุณ

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *