高彈性的Virtual hosting

chenpc April 3rd, 2009

一般virtual host必須把設定方法寫在httpd.conf裡面,這種方法缺點就是一旦更新檔案,apache就必須手動reload。既然vhost類似rewrite,謂何不用rewrite rule去取代?

在vhost.conf裡面加上:
RewriteEngine on
RewriteMap   lowercase  int:tolower
RewriteMap   vhost      txt:/www/vhost/vhost.map
RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
RewriteCond  ${vhost:%1}  ^(/.*)$
RewriteRule  ^/(.*)$ %1/$1

vhost.map這個檔案格式如下:
“domainname”       “document root”
chenpc.csie.in        /home/chenpc/public_html

這樣只要更變vhost這格檔案,不需要重新啟動apache就可以作virtual host。甚至可以寫一個很簡單的php去access vhsot.map這個檔案就可以拿動態的更變virtual hsot。這樣可以讓每個使用者自己更變virtual host的名稱跟目錄,不用每次都麻煩管理者去處理。配合suphp使用,還可以加強使用者的安全性。

Trackback URI | Comments RSS

Leave a Reply