GORAGOD.com

การสร้าง Dynamic Sub Domain ตอนที่ 2

หลังจากที่เรา Setup DNS แล้ว เมื่อเราทำการเรียกเพจใดๆ มันจะวิ่งไปหาเพจ ที่ root ของ Server ทั้งหมด เช่น http://www.localhost.com, http://chat.localhost.com ก็จะวิ่งไปอ่านเพจที่เรียกบนไดเร็คทอรี่เดียวกันเสมอ ทำให้เราสามารถทำการดักและแยกเอา sub domain ออกมาตามต้องการได้ 

การเขียนโค้ดให้ PHP รู้จักและแยกแยะ Sub domain แต่ละตัวได้โดยอัตโนมัติ มีวิธีหลักๆ อยู่ 2 วิธีครับคือการใช้ .htaccess และการเขียนโค้ดเพื่อแยก sub domain ด้วย PHP

เรามาดูแบบง่ายๆกันก่อนการเขียนโค้ดแยกด้วย PHP ธรรมดา ไม่ต้องมีเทคนิคพิเศษอะไร
<?php
 // แยกเอาชื่อ subdomain ออกมา
 $subdomain = preg_replace( '/(.*?)[\.]?localhost\.com/isu' , '' , $_SERVER['HTTP_HOST'] );

 // ถ้าไม่ได้กำหนด subdomain มาให้เป็น www
 // เช่น http://localhost.com
 $subdomain = ( $subdomain == '' ) ? 'www' : $subdomain;

 //แสดงผล subdomain ที่เรียก
 echo "subdomain=$subdomain";

 // เรียกไปยังไดเร็คทอรี่ชื่อ subdomain
 // เช่น www ให้เรียกใช้ไฟล์ www/index.php
 include( "$subdomain/index.php" );

วิธีการก็คือการอ่าน sub domain จาก ตัวแปร $_SERVER['HTTP_HOST'] ที่ส่งมา แล้วทำการแยกเอาส่วนที่เป็น Sub domain ออกมาแล้วไปทำการเรียกเพจตาม path ของ sub domain นั้นๆ