SEF (Search Engine Friendly) เป็นการทำให้ Query String ของเราอ่านได้ง่ายๆ ขึ้น ซึ่ง bot ของ Search Engine ชอบ และเราเองก็สามารถอ่าน Query String ได้เข้าใจง่ายขึ้น Webserver ของเราต้องเป็น Apache นะครับ เวอร์ชั่นไหนก็ได้
ตัวอย่าง Query String ปกติ
index.php?r=site/indexSEF URL
index.php/site/index
จากบทความที่แล้ว
เริ่มใช้ Yii Framework สอนการใช้งาน Framework สำหรับ Web 2.0
เรามาทำ url สวยๆ กันต่อ
วิธี
1.แก้ไขไฟล์ config โดยเปิดไฟล์
D:\xampp\htdocs\Yii_mindphp\myapp_mindphp\protected\config\main.phpแก้ไข
// uncomment the following to enable URLs in path-format
/*
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
*/เป็น
// uncomment the following to enable URLs in path-format
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
2.สร้างไฟล์ .htaccess ไว้ที่
D:\xampp\htdocs\Yii_mindphp\myapp_mindphp\.htaccessข้อความภายในไฟล์ ตามนี้
Options +FollowSymLinks
IndexIgnore */*
<IfModule mod_rewrite.c>
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>