获得本站免费赞助空间请点这里
返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
1 t( z" ~' X7 r' M. M" m
# a( l/ i+ L( \RewriteEngine on& |- r% T2 U9 X+ m, b1 Y
RewriteMap lowercase int:tolower1 a4 w7 B& w1 s" F( m1 g+ w3 n
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
5 j+ Y# d7 B% Q9 }6 R1 z8 \RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$+ R% b# B6 ]- ]9 K  q1 `! d# i
RewriteCond ${vhost:%1} ^(/.*)$
8 u- n( c7 P9 ~. JRewriteRule ^/(.*)$ %1/$18 _9 J. E. N, R# K/ W! J8 e
5 O! Z2 o" h/ D, d

" ]8 r. {7 V/ k4 o- T其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。* R* B  l, Q- q9 v
然后,在这个所在路径的目录下创建一个文件: vhost.map
" k0 e+ R+ ~& k4 A: L: {! q内容为:
' G' J8 L8 Y3 l" W' C7 n; y
  D1 A( e3 a3 v. Owww.domain.com /usr/local/www/data-dist/domain
+ N0 E" [- V6 k) A, G+ G( M; n2 m: l2 Zbbs.domain.com /usr/local/www/data-dist/bbs
" S8 E& @: @; S7 c9 oanyname.domain.com /usr/local/www/data-dist/anyname* K$ E8 |& t9 Y& c* {8 b" {
; Y$ [' F& }. V3 }% a
以上部分都是:” 域名+空格+绝对路径” 的形式。+ Z' H! F% I7 ]1 V

% x2 l7 |9 @2 i0 T8 l! j最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
6 \6 G) a/ h( V/ fdomain , bbs , anyname 等等,理论上可以无限。# R5 p* W# q6 `9 ^# Y& ?
& B- c7 b2 b- @3 t# k
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以! j+ F# R0 I0 ]* o/ V
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。! g! l+ z1 ^0 ^% s* |

! R, e8 n$ w4 n  \第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。8 s6 ^. b. l; d* w
第二步:打配置文件尾部加上
0 i# D& ^/ S/ b* sRewriteEngine on0 |0 F  G0 T/ d) q$ i
RewriteMap lowercase int:tolower
! T; |7 s  w4 X5 ^( b#定义映像文件4 n! M2 A" T9 y) O4 g
RewriteMap vhost txt:/apache/vhost/vhost.map
% T& j6 y5 ]5 M$ F#处理变名' i/ a% C7 j7 G( d
RewriteCond %{REQUEST_URI} !^/icons/1 c1 E5 }! s4 Q7 S- @6 a: ^9 O
RewriteCond %{REQUEST_URI} !^/cgi-bin/
/ e/ n; P! u5 ?& r7 u4 r+ Z0 dRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ z' L% l! {/ [/ D/ `这里做基于文件的重新映射
4 E( e3 K- v$ |/ g. r5 kRewriteCond ${vhost:%1} ^(/.*)$
" B0 r9 N  E# b4 n& k/ kRewriteRule ^/(.*)$ %1/$1& w# L) D7 z+ l0 u6 k; c0 Q" |
RewriteCond %{REQUEST_URI} ^/cgi-bin/1 _7 Z6 z. E% Z! ~5 Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
( o- i) O, T! WRewriteCond ${vhost:%1} ^(/.*)$
8 f% O0 |# z" j" ERewriteRule ^/(.*)$ %1/cgi-bin/$1' A, \0 \3 F# X0 B2 O: J; N* T
; d; e1 K' R+ [
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
# A& [* h% K4 nwww.abc.com /vhostusr/www.abc.com
) Y* {4 i$ s" L# ^www.xyz.com /vhostuser/www.xyz.com1 G7 R! B! l2 r$ Y' i2 _2 P
www.cccbbbb.net /vhostuser/www.ccbbbb.net
" E3 n8 w3 ^+ B* }; F.8 q3 y; [3 b9 E2 M
.
5 G; U) \/ k% i- G.
4 v) `- k5 c2 e4 x4 R) q1 t6 q6 f" @9 o.
% c2 `. W$ R6 v" s  y$ c/ t(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
" Z6 _/ \4 k) v$ k4 I! v; ~第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~* M6 W. Z! |5 Y( N+ X
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~4 n/ J& w# W/ ^; T
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
# ^8 W2 b' y7 o3 e) G==============================================
: f$ @: Y1 u- P# N& V方法二、
& I( `3 c6 \! |; C0 _& Y
* O" g& z4 Q0 p* X* P8 E( _1 Q# A1 {( ~5 \$ l
rewriteengine on8 j4 \# B' P' E; S9 y3 n1 h
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
% {$ ~+ C3 d8 V% Trewriterule ^(.+) %{HTTP_HOST}$1 [C]
* Y- a2 k. Q+ C3 }rewriterule ([^.]+)\.域名\.com(.*) /$1$2
5 I, G" w% I# c) n) W8 ^其他配置文件- g& k3 T3 j" _

; T4 A1 [" u3 |& ~& ^* m' J* h' e1 P! V接着在DNS中开设一个泛解析到对应的IP地址。
7 X0 f7 x' ?/ [& o就可以实现下面的方案。
% t& |% r. [$ a* C3 e& M9 {, h, L( k- V' }( s. V; Y
域名:domain.com
1 s  ]3 d( N* Z" }绝对路径:/home/domain.com/! ^+ K/ n& Q' g* ]8 g8 N; q
www.domain.com 自动解析到 /home/domain.com/www/8 I3 a3 }0 S7 l9 J2 G
abc.domain.com 自动解析到 /home/domain.com/abc/+ X0 l) ^5 n% ]& _. X
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
# g( N! r  {1 R) g1 Y8 S& r$ q直接建立子域名名称的文件夹即可使用。不需重启apache。

返回列表
【捌玖网络】已经运行: