เนื่องจากข้อความใน url นั้นมีความสำคัญต่อ SEO มาก
ในหลายๆ กรณีเราอยากจะใส่ข้อความภาษาไทยใน url
แต่ไม่สามารถทำได้ตรงๆ ต้องใช้ mod_rewrite เข้ามาช่วย
mod_rewrite เป็น module ยอดนิยมของ apache เลยก็ว่าได้
เนื่องจากขึ้นชื่อในการทำ url ให้อยู่ในรูปแบบที่สวยงามและ seo friendly
เรามาเริ่มจากตัวอย่างง่ายๆ กัน
1. สร้าง html file ง่ายๆ 2 file ใน folder public_html
โดยใช้ชื่อว่า ภาษาไทย.html และ thai.html และให้ทั้ง 2 file มี content เหมือนกัน
2. จากนั้นให้ลองเข้า ภาษาไทย.html และ thai.html
จะพบว่า thai.html สามารถเข้าได้ตามปกติ แต่ภาษาไทย.html ไม่สามารถเข้าได้
โดยขึ้น error ว่า The requested URL …html was not found on this server.
3. ที่นี้ลองแก้โดยสร้าง .htaccess file ใน folder public_html และให้ใส่ rewrite rule ดังนี้
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?url=$1 [L]
อธิบายการทำการได้ดังนี้
หากไม่พบ file หรือ directory ที่ระบุ ( บรรทัด 3-4)
ให้ทำการ rewrite url ภาษาไทยไปที่ index.php
4. จากข้อ 3 ที่ทำการ rewrite url ภาษาไทยไปที่ index.php
ที่นี้ใน index.php เราก็ต้อง include url ภาษาไทย (ได้มาจาก HTTP GET) เข้ามาเพื่อแสดงผล โดยเขียน script ได้ดังนี้
if(!empty($_GET['url'])) include(iconv('UTF-8', 'TIS-620', $_GET['url'])); ?>
5. ทดลองเข้า ภาษาไทย.html จะได้ผลลัพธ์เช่นเดียวกับ thai.html