CodeIgniter URLs
โดยพื้นฐานแล้ว URL ต่างๆใน CodeIgniter ถูกออกแบบมาให้เหมาะกับระบบค้นหา และเป็นมิตรต่อคน(สามารถดูแล้วรู้เรื่อง) มันดีกว่าที่จะใช้คิวรี่สตริงแบบมาตรฐาน(เดิมๆ)ในการเข้าถึง URL ต่างๆ ที่ี้เป็นแบบพลวัต(เปลี่ยนแปลงอยู่เสมอ) CodeIgniter ใช้ พื้นฐานการแยกเป็นส่วน ในการเข้าถึง URL ต่างๆ อย่างเช่นexample.com/news/article/my_article
หมายเหตุ: คิวรี่สตริงของ URL สามารถที่จะทำให้ใช้งานได้ ดังจะได้อธิบายข้างล่างต่อไปนี้
ส่วนต่างๆใน URI
ส่วนต่างๆใน URL ,ในการทำงานแบบ Model-View-Controller ปกติจะมีรูปแบบ:example.com/class/function/ID
- ส่วนแรกจะบอกว่าเป็นคลาส controller(ตัวควบคุม) ตัวใดที่ถูกเรียกใช้
- ส่วนที่สองจะบอกว่า ฟังก์ชันของคลาส หรือ เมธอด ใดที่ถูกเรียกใช้
- ส่วนที่สาม และส่วนอื่นๆที่เพิ่มเข้ามาจากนี้ บอกว่า ID และ ตัวแปรใดๆก็ตามจะถูกส่งไปให้กับ controller(ตัวควบคุม)
URI Class และ URL Helper มีฟังก์ชันต่างๆที่ช่วยให้การทำงานกับ URI เป็นเรื่องง่าย เสริมสักนิด URL ของคุณสามารถถูกกำหนดรูปแบบใหม่ได้โดยใช้คุณสมบัติของ การกำหนดเส้นทาง URI เพื่อความยืดหยุ่นมากขึ้น
ไม่ใช้ไฟล์ index.php
โดยพื้นฐาน, ไฟล์ index.php จะถูกเรียกใช้ใน URL ต่างๆของคุณ:
example.com/index.php/news/article/my_article
คุณสามารถใชไฟล์้ .htaccess ด้วยการเขียนกฏง่ายๆแทนการใช้ไฟล์์ index.php ได้ นี่คือตัวอย่างหนึ่งของไฟล์ .htaccess เป็นการใช้ เมธอด "negative" ซึ่งไม่ว่าอะไรก็ตามจะถูกชี้ทางใหม่ที่สอดคล้องกับรายการ:RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
จากตัวอย่างข้างบน HTTP ใดๆเมื่อร้องขอไฟล์ที่ไม่ใช่ index.php, รูปภาพ, และ robots.txt จะถูกกระทำเป็นการร้องขอสำหรับไฟล์ index.php ของคุณ
การเพิ่มคำต่อท้าย URL
ในไฟล์ config/config.php คุณสามารถกำหนดคำต่อท้ายที่จะถูกเพิ่มให้แก่ URLs ทั้งหมด ซึ่งถูกสร้างโดย CodeIgniter สำหรับตัวอย่างข้างล่างนี้ ถ้า URL เ็ป็นดังนี้example.com/index.php/products/view/shoes
คุณสามารถเลือกเพิ่มคำต่ิอท้าย อย่างเช่น .html, เป็นการทำให้หน้าปรากฏเป็นรูปแบบที่แน่นอน :example.com/index.php/products/view/shoes.html
โดยสามารถทำได้โดยแก้ตัวแปร $config['url_suffix']$config['url_suffix'] = ".html";
ให้สิทธิ์ยอมใช้คิวรี่สตริง
ในบางกรณีคุณอาจจะชอบใช้คิวรีสตริงของ URL แบบนี้:index.php?c=products&m=view&id=345
CodeIgniter สนันยังสนุนรูปแบบดังข้างต้น, ซึ่งสามารถทำได้ในไฟล์ application/config.php ถ้าคุณเปิดไฟล์ตั้งค่าของคุณคุณจะเห็นรายการเหล่านี้:$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
ถ้าคุณเปลี่ยน "enable_query_strings" เป็น TRUE คุณสมบัตินี้จะทำงาน controller (ตัวควบคุม)ต่างๆ และฟังก์ชันต่างๆจะเข้าถึงได้ด้วยการใช้คำว่า "trigger" คุณต้องตั้งค่าสำหรับการเรียก controller (ตัวควบคุม) ของคุณ และ เมธอดต่างๆ:index.php?c=controller&m=method
โปรดจำ: ถ้าคุณใช้คิวรีสตริงคุณจะต้องสร้าง URL ต่างๆของคุณเอง แทนที่จะใช้ประโยชน์จาก URL helpers (ตัวช่วย URL) (และตัวช่วยอื่นๆในการสร้าง URL ต่างๆ, เหมือนกับบางรูปแบบของตัวช่วย) ซึ่งวิธีเหล่านี้ถูกออกแบบให้ทำงานกับ URL ที่แบ่งออกเป็นส่วนๆได้