คุณ Zee ส่งอีเมล์มาจากระบบติดต่อของ gotoknow.org มาถามเรื่อง DNS Wildcard จำได้ว่าเคยเขียนเรื่องนี้ใน ThaiOpenSource.Org มาแล้วแต่พอเข้าไปดู how-to ที่เคยเขียนเป็นกรณีที่เราสามารถแก้ไข DNS Record เองได้ในกรณีของคุณ Zee เช่าบริการโฮสติ้งแต่ทางผู้ให้บริการให้เพิ่ม subdomain ได้เพียง 1 ชื่อเท่านั้นดังนั้นการทำ DNS Wildcard จึงทำไม่ได้ คุณ Zee เลยเขียนจดหมายมาถามในทางกลับกันคือ ไม่ใช้ subdomain แต่อยากให้แบ่งคล้ายๆ กับ DNS Wildcard ได้มั๊ย

ผมมาพิจารณาดูจากกรณีของคุณ Zee เข้าใจว่าพยายามทำ Pritty URL ของเว็บไซต์ หรือ SEO ง่ายๆ จาก URL โดยคุณ Zee จะให้ชื่อ URL เป็น http://domain.com/yourname บอเบราส์ไปแล้วก็ไปเปิดหน้าของ yourname ซึ่งไม่มีไดเรคทอรี yourname อยู่จริงๆ ในเซิร์ฟเวอร์ เอ้าเอาเป็นว่าน่าจะพอเข้าใจปัญหาคร่าวๆ กันแล้ว หาใครเคยทำ Pritty URL หรือคุ้ยเคยกับ SEO มาบ้างก็จะบอกว่า Rewrite URL ใช่มั๊ยครับ

How-To วันนี้ก็จะเป็นเรื่อง Rewrite URL ให้สนับสนุนกับโค้ดของโปรแกรมที่พัฒนาครับ โดยปกติการเขียนโค้ดของโปรแกรมในแบบ dynamic เรามักเห็นตัวแปรยุบยับผ่านทาง URL เช่น http://domain.com/index.php?name=yourname เป็นต้น เรามาทำให้มันสวยอย่างนี้ http://domain.com/yourname ได้ ด้วยการ Rewrite URL ครับ แล้วจะทำอย่างไร? วิธีการง่ายๆ เราสามารถเขียนกฏการแปลง URL ผ่านทาง htaccess ได้ครับ เขียนอย่างนี้ครับ

# Don’t show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

RewriteEngine on
#RewriteBase /mydir
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?name=$1 [L,QSA]

หลังจากนั้นให้เขียน index.php ขึ้นมาไฟล์นึงแล้วตรวจสอบ ค่า $_GET[‘name’] ว่าเป็นค่าอะไร เช่น สมมุติ http://domain.com/anoochit ค่า $_GET[‘name’] ที่ได้คือ anoochit ใน Request URI จะเป็น index.php?name=/anoochit ให้อัตโนมัติ ง่ายๆ แค่นี้เองครับ

Comments are closed.