使apache解析域名到目錄的方法
apache 如何將一個域名自動定位到目錄 有兩種解決辦法首先,你的擁有一個有泛域名解析的頂級域名,例如: domain.com 其次,在 httpd.conf 中打開 mod_rewrite之后,在
apache 如何將一個域名自動定位到目錄 有兩種解決辦法
首先,你的擁有一個有泛域名解析的頂級域名,例如: 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)建一個文件: 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 。
第一步:打開apache 的配置文件httpd.conf, 去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#號。
第二步:打配置文件尾部加上
RewriteEngine on
RewriteMap lowercase int:tolower
,#定義映像文件
RewriteMap vhost txt:/apache/vhost/vhost.map
#處理變名
RewriteCond {REQUEST_URI} !^/icons/
RewriteCond {REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:{SERVER_NAME}} ^(. )$
這里做基于文件的重新映射
RewriteCond ${vhost:1} ^(/.*)$
RewriteRule ^/(.*)$ 1/$1
RewriteCond {REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:{SERVER_NAME}} ^(. )$
RewriteCond ${vhost:1} ^(/.*)$
RewriteRule ^/(.*)$ 1/cgi-bin/$1
注意:vhost.map 文件是域名和空間映像的文件,格式如下:
www.abc.com /vhostusr/www.abc.com
www.xyz.com /vhostuser/www.xyz.com
www.cccbbbb.net /vhostuser/www.ccbbbb.net
.
.
.
.
(你不會連/vhostuser/www.abc.com目錄也沒建吧,會報錯的喲)
第三步:保存配置文件,重啟apache 。在開設可綁定域名的空間時,只要在vhost.map 文件里添加相應記錄,并建立相應文件夾就OK 了~~~
其實這個可以用php 腳本來完成的,很簡單的~~呵呵~~~
注意?。簆hp_admin_value open_basedir “path,這個選項要配好啊~~新手如果不懂的,就不要動這個了~
==============================================
方法二、
rewriteengine on
rewritecond {HTTP_HOST} [^.] .域名.com$
rewriterule ^(. )$ {HTTP_HOST}$1 [C]
rewriterule ^([^.] ).域名.com(.*)$ /$1$2
其他配置文件
,接著在DNS 中開設一個泛解析到對應的IP 地址。
就可以實現(xiàn)下面的方案。
域名:domain.com
絕對路徑:/home/domain.com/
www.domain.com 自動解析到 /home/domain.com/www/
abc.domain.com 自動解析到 /home/domain.com/abc/
等等子域名都可以自動解析到 /home/domains.com/對應子域名名稱的文件夾 直接建立子域名名稱的文件夾即可使用。不需重啟apache