- 論壇徽章:
- 0
|
首先,你的擁有一個有泛域名解析的頂級域名,例如: domain.com
其次,在 httpd.conf 中打開 mod_rewrite
之后,在 httpd.conf 的最后,添加以下內容:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
其中的 /usr/local/etc/apache 是你的 apache 服務器配置文件所在路徑,根據(jù)實際情況更改。
然后,在這個所在路徑的目錄下創(chuàng)建一個文件: [color="#ff6600"]vhost.map
內容為:
www.domain.com /usr/local/www/data-dist/domain
bbs.domain.com /usr/local/www/data-dist/bbs
anyname.domain.com /usr/local/www/data-dist/anyname
以上部分都是:" 域名+空格+絕對路徑" 的形式。
最后,在你的網(wǎng)站根目錄 /usr/local/www/data-dist 下,創(chuàng)建對應目錄:
domain , bbs , anyname 等等,理論上可以無限。
這樣,通過瀏覽器,訪問 www.domain.com 時,實際上訪問的就是
/usr/local/www/data-dist/domain目錄下的文件。同理,訪問 bbs.domain.com 實際上訪問的就是
/usr/local/www/data-dist/bbs 目錄下的文件。而且,你可以
隨時更改 vhost.map 來增加、刪除、修改你的二級域名和所指向的實際路徑,不用重啟 apache。
接下來windows下的操作:
1、域名物理地址文件 C:/AppServ/Apache2.2/conf/vhost.map
內容如下:
book.tiyan.com C:/AppServ/www/book
xxx.tiyan.com C:/AppServ/www/xxx
2、開啟LoadModule rewrite_module modules/mod_rewrite.so
3、域名泛解析
4、以下配置添加到httpd.conf的末尾或VirtualHost中
RewriteLog logs/rewrite.log
RewriteLogLevel 0
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:C:/AppServ/Apache2.2/conf/vhost.map
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond ${vhost:%1} ^(C:/.*)$
RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
要點:
a.正則^(.+)$ 要和vhost.map的第一部分匹配,在這個例子中^(.+)$是可以匹配book.tiyan.com的
b.正則^(C:/.*)$要和vhost.map的第二部分匹配,在這個例子中^(C:/.*)$是可以匹配C:/AppServ/www/book的
c.RewriteCond ${vhost:%1} ^(C:/.*)$
把盤符C:加入到正則中,如果您的web文件不是放在C盤而是E盤,要把C:改為E:
隨時更改 vhost.map 來增加、刪除、修改你的域名和所指向的實際路徑,不用重啟 apache
測試通
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/105281/showart_2083717.html |
|