Virtual Sub Directory
Virtual Sub Directory ก็คือการสร้างหรือใช้งาน ไดเร็คทอรี่ แบบที่ไม่ต้องมี (หรือมี) ไดเร็คทอรี่ที่ต้องการก็ได้ ถ้ายังนึกภาพไม่ออก ผมยกตัวอย่างการสร้าง blog โดยมี URL ของ User เป็น http://ez-find.co.cc/user/ ซึ่งวิธีนี้จะเป็นวิธีที่ค่อนข้างง่ายกว่าการใช้งาน Virtual Sub Domain ครับ เนื่องจากไม่ต้องไปยุ่งยากกันกับ Server และสามารถทำได้เอง เพียงแค่ Server สามารถใช้ .htaccess ได้
หลักการก็คือ การใช้งาน mod_rewrite ในการแปลง URL จาก
http://ez-find.co.cc/user/
ให้เป็น
http://ez-find.co.cc/index.php?user=user
ซึ่งในกรณีนี้คุณต้องสามารถใช้งาน URL ในรูป http://ez-find.co.cc/index.php?user=user เป็นปกติอยู่ก่อนแล้วนะครับ โดยในขั้นตอนการออกแบบ คุณสามารถออกแบบโดยใช้ URL แบบนี้ในการออกแบบ แล้วค่อยทำการแปลงตอนเสร็จแล้วก็ได้
วิธีการนี้ จะทำให้ URL ของคุณถูกแปลงโดยอัตโนมัติ นะครับ แต่ก็มีข้อเสียนะครับ คือคุณจะไม่สามารถทำการเรียก URL อื่นใดที่อาจเป็น URL จริงๆ บน Server ได้ เนื่องจาก URL จะถูกแปลงทั้งหมด เช่น
คุณจะไม่สามารถเรียกใช้ http://ez-find.co.cc/member/ ได้ เนื่องจากมันจะถูกแปลงเป็น http://ez-find.co.cc/...ndex.php?user=member ซึ่งมันจะหากันไม่เจอ การแก้ไข ให้สร้างไฟล์ .htaccess เพื่อปิดการทำงาน mod_rewrite ภายใน directory ที่ไม่ต้องการให้มันทำงานนะครับ
หลักการก็คือ การใช้งาน mod_rewrite ในการแปลง URL จาก
http://ez-find.co.cc/user/
ให้เป็น
http://ez-find.co.cc/index.php?user=user
ซึ่งในกรณีนี้คุณต้องสามารถใช้งาน URL ในรูป http://ez-find.co.cc/index.php?user=user เป็นปกติอยู่ก่อนแล้วนะครับ โดยในขั้นตอนการออกแบบ คุณสามารถออกแบบโดยใช้ URL แบบนี้ในการออกแบบ แล้วค่อยทำการแปลงตอนเสร็จแล้วก็ได้
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^xxx\.com$
RewriteRule ^([a-z]+)\/(.*)?$ index.php?user= [L,QSA]
วิธีการนี้ จะทำให้ URL ของคุณถูกแปลงโดยอัตโนมัติ นะครับ แต่ก็มีข้อเสียนะครับ คือคุณจะไม่สามารถทำการเรียก URL อื่นใดที่อาจเป็น URL จริงๆ บน Server ได้ เนื่องจาก URL จะถูกแปลงทั้งหมด เช่น
คุณจะไม่สามารถเรียกใช้ http://ez-find.co.cc/member/ ได้ เนื่องจากมันจะถูกแปลงเป็น http://ez-find.co.cc/...ndex.php?user=member ซึ่งมันจะหากันไม่เจอ การแก้ไข ให้สร้างไฟล์ .htaccess เพื่อปิดการทำงาน mod_rewrite ภายใน directory ที่ไม่ต้องการให้มันทำงานนะครับ
Options +FollowSymlinks
RewriteEngine off