สวัสดีครับท่านผู้อ่าน
วันนี้ผมได้ลง Theme เสร็จเป็นเรื่องเป็นราวสักที ด้วยความช่วยเหลือจาก Duena theme ก็เลยจับมาทำ Child theme ที่เรียนมาจากงานอบรมที่ Hubba วันก่อน จนได้เป็นธีมเว็บอย่างที่ท่านเห็นนี่ล่ะครับ ถ้าจัดการอีกนิดหน่อยเรื่องอักษรเสร็จก็aคงได้ฤกษ์ขึ้น Version 1.0 สักทีครับ ก็คงต้องขอความกรุณาจากท่านผู้อ่านทุกท่านเข้าชมบ้างนะครับ (>/\<)
วันนี้ผมจะทำ Subdomain สำหรับโครงงานวิชา CPE111 ที่เคยพูดถึงนั่นล่ะครับ ไอ้ครั้นจะทำ Multisite ก็ยุ่งยากเกินไป (อีกทั้ง Host ที่ผมใช้เค้าไม่อนุญาตด้วย) ก็เลยใช้วิธีการ redirect ดีกว่า
ว่าแล้วก็มาดูกันดีกว่าครับ
ขั้นตอนแรกก็เข้าไปที่ control panel ของเว็บครับ ในที่นี้โฮสต์ผมใช้ DirectAdmin ครับ จากนั้นไปที่ subdomain management ครับ
ระบบจะแสดงหน้ารายชื่อ Subdomain ที่เราเคยลงทะเบียนไว้ ให้พิมพ์ที่ช่อง Subdomain ที่เราจะสร้างใหม่ แล้วกด Add ครับ
จากนั้นระบบจะสร้าง folder ที่ชื่อเดียวกับ subdomain ที่เราเพิ่งสร้างไป ให้ FTP เข้าไปครับ จากนั้นสร้างไฟล์ .htaccess ขึ้นมาครับ
ในที่นี้ผมใส่คำสั่งใน .htaccess ไว้ดังนี้ครับ
RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{HTTP_HOST} [subdomain].[webname] [NC] RewriteRule ^(.*)$ http://[webname]/[folder]/$1 [R=301,L]
โดยให้แทน [subdomain] แทนชื่อ subdomain ที่เราเพิ่งสร้าง [webname] แทนชื่อเว็บเรา และ [folder] เป็น path ของ folder ที่เราอยากให้ไป แต่ละคำสั่งมีความหมายดังนี้ครับ
เป็นการบอกว่าให้ทำคำสั่งในแท็กนี้หากระบบลง mod_rewrite เอาไว้ เพื่อป้องกัน error 500 ครับ
RewriteEngine On
เป็นการบอกว่าให้เปิดการ rewrite ชื่อเว็บ
Options +FollowSymlinks
เป็นการบอกว่าให้ตามโฟลเดอร์ที่เป็น shortcut ด้วย (ปกติไม่เปิด) เผื่อไว้ว่าที่อยู่ที่เราจะทำเป็น shortcut
RewriteBase /
เป็นการบอกว่าการตามโฟลเดอร์ต่อไปให้เริ่มจาก /
RewriteCond %{HTTP_HOST} [subdomain].[webname] [NC]
เป็นการระบุเงื่อนไขว่าให้ทำคำสั่งข้างล่างหาก Domain name ที่เข้ามาเป็น [subdomain].[webname] โดย [NC] คือไม่ต้องสนใจว่าตัวเล็กตัวใหญ่ครับ ให้ทำเหมือนๆ กันหมด
RewriteRule ^(.*)$ http://[webname]/[folder]/$1 [R=301,L]
เป็นการบอกว่า ให้เปลี่ยน path ใดๆ เป็น http://[webname]/[folder]/ ตามด้วยที่อยู่ที่ระบุต่อท้าย subdomain โดยให้เป็นการ redirect และทำคำสั่งนี้เป็นคำสั่งสุดท้าย ไม่ทำตัวอื่นต่อครับ
แล้วก็อัพโหลด เป็นอันเสร็จพิธีครับ
การทำ redirect แบบนี้ดีกว่าการใช้ header redirect ของ php ตรงที่เราสามารถเอา path มาต่อท้าย subdomain ได้ครับ เช่น http://cpe111.itpcc.net/cpe111-4-years-in-4-hours/ ก็จะไปที่ www.itpcc.net/cpe111/cpe111-4-years-in-4-hours/ ให้โดยอัตโนมัติครับ
แอบอ้างจาก
http://forum.directadmin.com/showthread.php?t=37072&p=187208#post187208 — การเขียน .htaccess ใน directAdmin
http://httpd.apache.org/docs/2.2/rewrite/flags.html — การใช้ flag ใน mod_rewrite