如何使用一份程式碼,給多個站台使用

要實現這個功能要用到 apache 的 virtual host 的功能,先必需設定 apache 各個 virtual host 指到同一個目錄,然後再程式裡面判定是經由哪個 host 進來,再給不同的內容即可。

這邊主要說明 php 的部份怎麼作,在 php 裡面可以取得 $_SERVER 這個變數,其中裡面有 HTTP_HOST 這個變數,其內容就是你是經由哪個 DNS 連上該主機的。如果是像 *.example.com 這種 subdomain 的話,直接分析 * 是什麼,就代表這是不同的站台。

  • 首先要設定 wildcard DNS 就是把 *.example.com 指到同個網站。
  • 設定 apache 支援 wildcard DNS 和 virtual host

apache 的設定方法如下: [code] NameVirtualHost * ServerAdmin master@example.com # 最重要的為以下二行 ServerName example.com ServerAlias *.example.com DocumentRoot /var/www/data/ Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all [/code]

基本運作程式碼如下,讓其他的程式 include 此程式,這樣就可以取得 $site 了: [code lang=“php”] [/code]

目前 lyceum/lifetype 都是使用這種方法去判定是哪些站台,再從資料庫裡找出每個站台所需的資料顯示出來。

使用此方法,就可以用一份程式碼,顯示多重且不同風格的網站了。