เมื่อต้องการเปิดใช้ mod_rewrite บน apache คุณต้องแทรกคำสั่งนี้ลงใน
.htaccess (คุณไม่สามารถสร้างไฟล์นี้บน server ที่เป็น Windows ได้ เนื่องจาก Windows จะไม่ยอมให้สร้างไฟล์ที่ไม่มีชื่อ)
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 1 เปลี่ยนเพจใดๆที่เรียกด้วย .htm ให้เป็น .php
เช่น เมื่อเรียกเพจ
http://www.com/thepage.htm apache จะไปทำการเรียก
http://www.com/thepage.php มาใช้งาน
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 2 รีไดเร็คเพจไปยัง URL อื่นโดยตรง
ตัวอย่างเมื่อทำการเรียกเพจ
http://www.com/thepage.htm จะไปทำการเรียกใช้เพจที่
http://www2.com/thepage.php แทน
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 3 ใช้ Regular expression กับ .htaccess
ตัวอย่างเมื่อทำการเรียกไฟล์ .zip ใดๆ ที่อยู่ในไดเร็คทอรี่ files/ ให้ไปทำการดาวน์โหลดไฟล์นั้นๆ ผ่านหน้า download.php เช่น
เมื่อทำการเรียกไฟล์ http://www.com/files/games/test.zip
apache จะไปทำการเรียกเพจ
http://www.com/download.php?section=games&file=test เพื่อจัดการดาวน์โหลดไฟล์แทน จุดประสงค์ของวิธีนี้ก็เพื่อป้องกันการเรียกดาวน์โหลดไฟล์โดยตรง และเพื่อสามารถให้ควบคุมการดาวน์โหลดหรือนับจำนวนการดาวน์โหลดได้
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
หรือ เมื่อทำการเรียกไฟล์ rar zip doc หรือ pdf ให้ไปเรียกหน้า download
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 4 เป็นมิตรกับ Search Engine
สังเกตุ URL
http://www.com/index.php?id=5 จะเห็นว่า URL แบบนี้ไม่ได้บอกความหมายว่าหน้านี้หมายถึงหน้าอะไร แต่ถ้าระบุ URL เป็น
http://www.com/htacess-tip-trick จะสื่อความหมายได้ว่าหน้านี้จะมีเนื้อหาอย่างไร ซึ่ง Search Engine จะให้คะแนน URL ที่สื่อความหมายตรงๆได้ดีกว่าครับ
ตัวอย่างจะเป็นการระบุ URL ของ blog ในรูปของ วันเดือนปี เช่น
http://www.com/blog/17-1-2551 แล้วจะแปลงให้เป็น query ในรูปของ
http://www.com/blog/index.php?d=17&m=1&y=2551 เพื่อให้ blog แสดง blog ในวันที่กำหนด
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
สำหรับตัวอย่าง
Regular expression ที่สามารถใช้กับ .htaccess ได้ก็คล้ายๆกับที่ใช้กับ perl ครับ เช่น
. อักขระใดๆ 1 ตัว
[chars] Character class: 1 ตัว
[^chars] ไม่ใช่ Character
text1|text2 text1 หรือ text2 | หมายถึง หรือ
? มีหรือไม่มี ตัวอักษร 1 ตัว
* มีหรือไม่มี ตัวอักษรใดๆ
+ และตัวอักษรใดๆ
(text) กลุ่มของข้อความในเครื่องหมาย () คืนค่ากลับตามลำดับเป็น $n
^ ตัวอักษรตัวแรกขึ้นต้นด้วย
$ ตัวอักษรตัวสุดท้ายลงท้ายด้วย
\char \ ใช้คู่กับอักขระควบคุมใดๆ เช่น ".[]()"
ตัวอย่างที่ 5 URL แบบสั้นๆ
บางครั้งเรามี URL ยาวๆแบบนี้
http://www.com/files/download/download.php?file=my.zip เราสามารถทำให้สั้นลงเป็น http://www.com/download?file=my.zip ได้ครับ
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 6 เรียกเพจอะไรมาให้วิ่งไปที่ index.php ให้หมด
คงสงสัยนะครับว่ามันจะมีประโยชน์อะไร
ไม่ว่าเราจะเรียกไฟล์อะไรมา หรือ ไฟล์ในไดเร็คทอรี่อะไร มันจะพาเราไปยัง index.php เสมอครับ ประโยชน์ก็อย่างเช่น ป้องกันการยิงไดเร็คทอรี่ สำหรับพวกมือดีที่ต้องการตรวจสอบว่าเรามีไฟล์หรือไดเร็คทอรี่อะไรบ้างบน Server ในกรณีนี้ มันจะพบ ทุกไฟล์และทุกไดเร็คทอรี่ที่ยิงมาครับ (แล้วจะรู้ไหมเนี่ยว่าอันไหนเป็นไดเร็คทอรี่จริงๆบน Server) นอกจากนี้เรายังสามารถใช้สำหรับทำ Sub Domain ได้ด้วย ด้วยการตรวจสอบ ค่าที่ส่งมาแล้วเอาไปแยกออกเป็น Sub Domain หรือ ไดเร็คทอรี่ เช่น ตัวแปร
$_SERVER[DOCUMENT_ROOT] หรือ
$_SERVER[REQUEST_URI] ของ PHP
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 7 Virtual Sub Domain
เป็นการ Config .htaccess ให้เป็น virtual sub domain โดยจะมี domain ในรูป
http://user.domian.com สำหรับพวก free host หรือ blog ที่มี user เป็น sub domain โดยเมื่อเรียก sub domain นี้ จะไปทำการเรียกใช้ ไดเร็คทอรี่ ภายใต้ไดเร็คทอรี่หลัก เช่น /home/hosting/
user/public_html/
sub/directory/
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ตัวอย่างที่ 8 ให้ google ไปยัง URL ที่กำหนด
เป็นการ Config .htaccess ให้ google ไปอ่านเพจที่กำหนด โดยการตรวจ IP ของ google เมื่อพบกลุ่ม IP ที่เป็นของ google จะให้ google ไปอ่านยังเพจที่กำหนดทันที
ขออภัย : สำหรับสมาชิกเท่านั้น, สมาชิกกรุณาเข้าระบบก่อน
ลองดูเพิ่มเติม ที่นี่ครับ
http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/