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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:6 b  L9 ]  I; O; Q7 j, T% q
6 ^+ O5 I* g- }4 n' S: @; U
RewriteEngine on
! U* k+ h& y3 [: a9 ]RewriteMap lowercase int:tolower
5 ^2 P. q5 F3 h) }0 `: F8 dRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
( H- ]! L- o: h/ ORewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
; @" H; s, A- aRewriteCond ${vhost:%1} ^(/.*)$
9 O; ~+ O7 ~7 T8 ?" f" {' u# c) ARewriteRule ^/(.*)$ %1/$1
) p3 {' ?2 {8 d9 t
% V( B$ f$ m/ U2 D4 P3 j2 ^% {0 X% L* E/ Q; Y6 X; y. [
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。  A1 l3 R$ C' S/ l+ a. _- Q
然后,在这个所在路径的目录下创建一个文件: vhost.map
2 M0 e; ]# Y5 D/ I" ^2 U; C内容为:
! u6 v6 B9 T+ [& r0 A' P/ [0 F- D2 K  ]- a& S. T- U5 `5 v- n( X) `7 t! J
www.domain.com /usr/local/www/data-dist/domain
1 k9 }; ~7 X& ?2 K& h2 b# Zbbs.domain.com /usr/local/www/data-dist/bbs
+ U8 I9 u4 M1 X, canyname.domain.com /usr/local/www/data-dist/anyname
  a6 ^1 i- {/ p
0 L+ |8 X5 P+ U  f8 S以上部分都是:” 域名+空格+绝对路径” 的形式。9 R) b$ R* H8 Y" C
4 N, f" @9 v: ~3 i. ]1 E
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:* h! x6 v8 Y% ?5 K1 o
domain , bbs , anyname 等等,理论上可以无限。
4 E6 [/ ]/ U$ r' o& G; |5 m) ~) n6 R/ a
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
3 {2 h; N) x* u: B$ n# ]随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。/ P' a! K. S9 N8 |# Q9 u2 p
( {8 ~* C- j# g
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。$ W6 e  w" K: R) e
第二步:打配置文件尾部加上( d6 K7 I) I* o# x' E2 H9 N
RewriteEngine on
6 e/ O# h( s- p. V* mRewriteMap lowercase int:tolower
  z; s8 s) \: i, Z- y#定义映像文件
! `& m0 K* m* KRewriteMap vhost txt:/apache/vhost/vhost.map
! l& Y; U; T4 a# y( f$ X! K6 K#处理变名& Z( J; `! N- Y4 M7 ?5 M) R6 h7 R: J
RewriteCond %{REQUEST_URI} !^/icons/
* c# f. t0 v  x& ARewriteCond %{REQUEST_URI} !^/cgi-bin/
: |1 k2 |: W" A) eRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
. }# Q5 {/ b9 R1 d7 e这里做基于文件的重新映射
; D% ~$ u8 @" uRewriteCond ${vhost:%1} ^(/.*)$# R+ F) j  R% c2 x. g
RewriteRule ^/(.*)$ %1/$1, z+ q' V/ }) P5 j5 l8 j4 Y3 I9 i
RewriteCond %{REQUEST_URI} ^/cgi-bin/7 \' Y0 Q2 c+ l: d0 k6 m
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% @; B; ]/ D# O" z9 vRewriteCond ${vhost:%1} ^(/.*)$
1 d% t* \2 v. R' F. `: }, b2 |RewriteRule ^/(.*)$ %1/cgi-bin/$19 o# e- g0 q1 ^; w' S- H2 s
$ G1 C$ U7 x/ P! {
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
( j5 _. E' U0 g: o$ G: }# twww.abc.com /vhostusr/www.abc.com
4 ?; h! Q  a7 h: ?6 ?$ K" l& ]+ Awww.xyz.com /vhostuser/www.xyz.com
9 r2 k7 ~" k0 D5 gwww.cccbbbb.net /vhostuser/www.ccbbbb.net9 x, `/ {) r" A# F; a
.  b5 u. z" m% n: M$ f4 o6 \: \
.
! r% C8 D8 H8 `4 j.
  l* r- G) @# }) M9 W.
# ?2 c$ h2 \! ^* l) ?4 i(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
, ~. j/ K/ K) s; K: o第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~+ s# D$ P+ m, `, f7 n
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
8 l% B5 _+ ^5 w2 e" r0 I注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
* B) m/ m: L$ F# ^; G" c, c==============================================4 z# q5 b$ H. L* x
方法二、. w# y' q# \# T' C6 A- N9 L: N3 E# l
; ^1 ^& z. b4 `* }+ }' U, k, u

! ^9 G1 }' Y& q- E! b% drewriteengine on
  U, F, w7 }5 J# b* U1 Orewritecond %{HTTP_HOST} [^.]+\.域名\.com$* @0 F% k0 B  E$ Y
rewriterule ^(.+) %{HTTP_HOST}$1 [C]* g) X) U1 H0 h& b, P* c) ~; J3 @
rewriterule ([^.]+)\.域名\.com(.*) /$1$2# q8 C' v( K9 m2 H$ `3 z% W/ z
其他配置文件
/ X: y7 B: d. X9 y! c
6 @* r) {4 a6 J接着在DNS中开设一个泛解析到对应的IP地址。4 |% i( @( Z% n2 N1 W3 j" `+ X
就可以实现下面的方案。
, y/ J. a* N5 l' s/ T
: D! s6 h6 c- N- y域名:domain.com
* i. _9 M+ f6 x: Y9 h( f$ r% B绝对路径:/home/domain.com/
3 H+ I) M* p3 t/ s) j9 y/ K, pwww.domain.com 自动解析到 /home/domain.com/www/
! l# w  b" B  }+ d/ Eabc.domain.com 自动解析到 /home/domain.com/abc/( d5 r/ n! i8 l& {) i; G+ H
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
$ i( @( \0 Q$ O7 C直接建立子域名名称的文件夹即可使用。不需重启apache。

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