Sunday, April 4, 2021

Remove index.php from Codeigniter URL

  • เรียนรู้ PHP Framework สักตัวมาจบที่ Codeinigter 3.1.11 
  • ที่เลือกเพราะ Environment ของ Server เราไปได้แค่นี้ และ Community ใน Thai ใช้ได้เลย
  • ปกติ URL เริ่มต้นของ Codeiginter จะประมาณนี้
  • example.com/index.php/news/article/my_article
  • เราจะทำให้ใช้เป็นประมาณนี้
  • example.com/news/article/my_article
  • ทำไงดี

Env

  • Ubuntu 18.04
  • LAMP
  • PHP 7.2
  • Codeigniter 3.1.11

Step

  • ในที่นี้เราใช้ LAMP บน Ubuntu 18.04 ก็ไป เปิดใช้งาน ทำประมาณนี้
  • https://juuier.blogspot.com/2020/09/rewrite-urls-with-modrewrite-for-apache.html
  • หลังจากเปิดแล้วให้แก้ไข config.php ซึ่งไฟล์นี้จะอยู่พาธประมาณ myproject_ci/application/config/config.php 
  • เปลี่ยนค่าเริ่มต้นซึ่งจะเป็นค่านี้
  • $config['index_page'] = 'index.php';
  • แก้ไขโดยใส่เป็นค่าว่าง ลบ index.php ออกไป ให้เหลือแค่ single quote พอ
  • $config['index_page'] = '';
  • บันทึกไฟล์ config.php ให้เรียบร้อย
  • จากนั้นสร้างไฟล์ .htaccess โดยใส่เนื้อหาประมาณนี้

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

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

  • บันทึกไฟล์ไว้ภายใต้ root folder project codeinigter ของเรา
  • อย่างเช่น  พาธคอนฟิกเราเป็นแบบนี้ myproject_ci/application/config/config.php 
  • แสดงว่า myproject_ci คือ root folder ของ project เราให้วาง .htaccess ไว้ตำแหน่งนี้
  • เป็นอันเรียบร้อย ทดสอบสร้าง controller ตัวใหม่และ function ใหม่ทดสอบดู

Ref

  • https://codeigniter.com/userguide3/general/urls.html
  • https://juuier.blogspot.com/2020/09/rewrite-urls-with-modrewrite-for-apache.html

No comments:

Post a Comment

Popular Posts