in 程式小心得

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

要實現這個功能要用到 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 的設定方法如下:

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
        

基本運作程式碼如下,讓其他的程式 include 此程式,這樣就可以取得 $site 了:


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

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

Write a Comment

Comment

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  1. 因為備份站被回應會寄信到我的信箱裡面,所以我也是千百個不願意啊。
    掛掉可能是我正在更新 apache 所以剛好掛掉XD