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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
, K5 [, b- u! L" d, k- C( E' o
' F3 r/ {. q  U% TRewriteEngine on! |; c/ @, F1 R' Y' H
RewriteMap lowercase int:tolower
1 I( W% t& w; v( t0 nRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
; w+ R. o. @& J2 ZRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
) O8 W3 ]* t3 W: r  {/ s3 Z2 bRewriteCond ${vhost:%1} ^(/.*)$  A# w2 S8 J9 e. j8 @
RewriteRule ^/(.*)$ %1/$1! j( s4 ^1 U7 s$ [0 Y
9 ?: T/ j; e, Y5 s
3 x% Y/ X9 z1 d6 F: ?/ b) M
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。% E7 T, v" F9 S# m
然后,在这个所在路径的目录下创建一个文件: vhost.map
% M+ s6 l: x& }- {! f内容为:' g% I1 Y0 s. j( @, U
' @: J6 X& }4 i3 G
www.domain.com /usr/local/www/data-dist/domain0 `" d" n8 H; {/ x& S
bbs.domain.com /usr/local/www/data-dist/bbs
- U% X+ B* Y7 b9 ?9 F; j7 nanyname.domain.com /usr/local/www/data-dist/anyname* e1 i! ^: ]0 Q( D

9 b% {7 x6 M# j- e以上部分都是:” 域名+空格+绝对路径” 的形式。
9 m% ~! p- b% h, f4 M
1 c  B. _. M1 I6 R最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
/ V. d) `3 ^$ R" P; N4 K, Cdomain , bbs , anyname 等等,理论上可以无限。
& X" y3 h3 K, ]5 G6 P6 `7 P$ Y8 r, `
, L% M8 I5 [, `这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以5 Q  e( U2 D# _- u; A0 t
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
0 q9 a+ N# R' n2 ]8 V8 |$ x" q" _4 E3 K  ]! y+ O* E
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。! i( X" u8 i# U3 a
第二步:打配置文件尾部加上/ E, Q" Y0 o3 k: f
RewriteEngine on2 H6 a: b% m( X/ b
RewriteMap lowercase int:tolower
  E( @5 ?+ D: L5 y/ U#定义映像文件" E$ e2 C/ m& N) n2 P
RewriteMap vhost txt:/apache/vhost/vhost.map9 Z; O9 q, Z( d, G0 F" m) F- C
#处理变名; D5 K$ ~5 n8 u: c
RewriteCond %{REQUEST_URI} !^/icons/2 y" @3 {- T! j4 L9 r, ~
RewriteCond %{REQUEST_URI} !^/cgi-bin/0 K4 c3 e' O" K9 [
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$' W" T1 A6 g; G# t' \' z5 m) I
这里做基于文件的重新映射
# }5 \# |9 ]* R# S; f3 a! GRewriteCond ${vhost:%1} ^(/.*)$
  n) S: j. B* qRewriteRule ^/(.*)$ %1/$1( G: O  {; O" f0 N. U
RewriteCond %{REQUEST_URI} ^/cgi-bin/
0 m% [6 |+ }0 J  T3 A9 d4 ]6 }3 LRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$$ o4 Z# I" X: O7 N$ ^4 x6 r
RewriteCond ${vhost:%1} ^(/.*)$5 w0 S! B" j1 P+ Q$ ~% t4 x9 N* P" F
RewriteRule ^/(.*)$ %1/cgi-bin/$15 N4 U% e! O4 |0 \1 Q& K. C6 m
: ~0 ^- ~9 @2 A3 j7 E+ o: k
注意:vhost.map文件是域名和空间映像的文件,格式如下: ) b5 n% M! X5 V% m  L
www.abc.com /vhostusr/www.abc.com( Q- s0 i; m; V" V
www.xyz.com /vhostuser/www.xyz.com7 S- D! A* r8 n2 h' \- S1 H/ `
www.cccbbbb.net /vhostuser/www.ccbbbb.net
0 x& x( y" G/ i7 Z7 g.
& u! B1 o: X0 p$ I2 F( K.% K  @( e) S3 q- w2 J& d0 y! h
.
4 G* g0 z" w! {5 o, A+ ]; E4 g  p8 o$ W.
" _( h# ^# j6 `" _1 S9 T8 b(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)- y, K5 ~( U  @; {
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
, H: q( o* P2 M2 @' ]+ u2 `其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
' G9 R' c" O( \2 b2 @注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~0 J9 a. o& p. F- y+ J
==============================================* t( }! U- W: N- u2 U# w1 }$ b
方法二、
; K- L) B' _; h) ]" `9 z9 X( j. h' F# U9 \+ i8 R4 g) W( r# R
2 p1 o) m. p6 L
rewriteengine on' m3 W% P. n6 g9 y9 i
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$1 A& w' D0 L" s* j% q- M- v
rewriterule ^(.+) %{HTTP_HOST}$1 [C]5 R4 u- D& X( m7 e
rewriterule ([^.]+)\.域名\.com(.*) /$1$2. v) o& A2 R( o& z5 ~
其他配置文件# L/ l$ T2 h! z  A0 k3 M( M

! J7 ~6 d/ E/ Q* ]& l9 a. B/ w接着在DNS中开设一个泛解析到对应的IP地址。
6 J+ Q; i3 X% g) k, F$ n* e) u就可以实现下面的方案。2 c2 V. I. L' k2 |( a8 g

$ M8 g4 o! t3 `0 g( {& z域名:domain.com
5 P$ q/ b, R8 w绝对路径:/home/domain.com/! i3 o2 V# v1 W/ q
www.domain.com 自动解析到 /home/domain.com/www/
) |! k( Z9 f( k% a, Wabc.domain.com 自动解析到 /home/domain.com/abc/
7 c* u6 Q( a1 g2 q$ G( Y等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹  L( k* k/ d# C
直接建立子域名名称的文件夹即可使用。不需重启apache。

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