สอน Codeigniter วิธีลบไฟล์ index.php ออกจาก URL

php-codeigniter-framework
php-codeigniter-framework

สอน Codeigniter วิธีลบไฟล์ index.php ออกจาก URL

หากเราพัฒนาเว็บไซต์โดยใช้ codeigniter framework โดยปกติแล้วค่า default url ของ CI
จะติด index.php มาด้วย ซึ่งไม่ทำให้เกิดผลใด ๆ ในทาง SEO และยังทำให้ URL เมื่อแสดงบน address bar
ของเบราซ์เซอร์ต่าง ๆ ไม่สวยเท่าไหร่ ตัวอย่างเช่น ถ้าหน้าแรกของเราคือ controller home.php
หน้าแรกของเราจะเรียกผ่าน url เป็น www.yourdomain.com/index.php/home
ซึ่งอาจจะดูไม่สวย ไม่เป็น URL Friendly หรือได้ผลทาง SEO ไม่ดีนัก วิธีตัด index.php ออกจาก url จะทำได้ดังนี้ครับ

1. แก้ไขไฟล์ .htaccess ( ในกรณีที่โฮสเราเป็น linux OS ) เป็นแบบนี้

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

แต่ถ้าเราติดตั้ง codeignter ไว้ใน subfoler ให้เปลี่ยนบรรทัดที่ 4 ตามชั้นโฟลเด้อที่เราติดตั้งไว้ เช่น

RewriteRule ^(.*)$ /folder1/folder2/index.php?/$1 [L]

2. ทำการแก้ไขไฟล์ application/config/config.php บรรทัดที่ 38
จาก

 $config['index_page'] = 'index.php';

เป็น

 $config['index_page'] = '';

เท่านี้ทุกหน้า ทุก controller ของเว็บเราก็จะไม่มี index.php ติดมาแล้วครับ