Board logo

标题: 独立主机Apache 配置二级域名 [打印本页]

作者: admin    时间: 2009-4-26 19:44     标题: 独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
7 \1 n% G9 A) Y1 a7 W, m
( o, O' w$ i0 W) h% ~1 _RewriteEngine on: F$ x& Q: {2 u. w% f- n
RewriteMap lowercase int:tolower* E* A% L" y9 e
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map, J* {2 V( ]& r2 Z' E
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 J9 Y5 a" K$ T5 hRewriteCond ${vhost:%1} ^(/.*)$
. Z! y4 R3 w7 k8 u6 [$ }" A* NRewriteRule ^/(.*)$ %1/$1
; t0 R, v( L4 J6 ?$ H! y5 A
0 ]: V( J  P% v2 t/ A* B5 Y2 w* h! R. R
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。' H5 b7 g% W3 E$ E2 q
然后,在这个所在路径的目录下创建一个文件: vhost.map! O$ n% X; o6 @
内容为:
# n1 _! @  J1 J- o1 R  r6 I2 O
8 P5 S6 e; b) @- ^, |www.domain.com /usr/local/www/data-dist/domain( z2 w) k2 Q1 s# O0 Y
bbs.domain.com /usr/local/www/data-dist/bbs
- ?4 m" L0 k% H, }3 i6 Z% Ranyname.domain.com /usr/local/www/data-dist/anyname8 M9 O% Q1 i0 z' z1 l

4 l6 ~/ O4 k! A( {7 j* G3 n- j以上部分都是:” 域名+空格+绝对路径” 的形式。+ o# }" ?( ]; {2 ]' @$ ?6 t

) o1 X5 B# p* R/ r" \- R最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:7 q) k8 }; T8 a
domain , bbs , anyname 等等,理论上可以无限。8 P  w: I! R4 \7 ?' m, i7 K! ^1 D

& W. O& ^2 x6 P- b: l  ^7 O: @这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
/ u: U3 V" V: B* f4 |9 `随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。1 g' W+ G/ x- j: Z
" C( V1 {( V* D
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
$ i* j/ K2 z" _第二步:打配置文件尾部加上
, g: N! U6 i$ K( B2 t6 x' CRewriteEngine on
0 k. _/ c8 @- ]$ x  M$ ERewriteMap lowercase int:tolower. c- O1 `' Y6 C8 o* {2 v
#定义映像文件
* F0 z& [1 ], _: }& R+ q/ O2 WRewriteMap vhost txt:/apache/vhost/vhost.map
  h/ Q/ d, t/ K( X8 C#处理变名& Z  Q; Y/ z( m4 o& }/ j! H( _
RewriteCond %{REQUEST_URI} !^/icons// s7 H; Q* \( ~- }  B0 K
RewriteCond %{REQUEST_URI} !^/cgi-bin/2 H9 H* M0 E3 P' ~) c. t0 }( K
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$, U% r) l7 S* Y" U' I# g
这里做基于文件的重新映射/ `. p* R' Q- x0 p7 A2 _5 Z' `
RewriteCond ${vhost:%1} ^(/.*)$
8 D. Y, ]6 l3 @' f8 j& _& _) Q. H) rRewriteRule ^/(.*)$ %1/$1) {! b/ V  P5 ]3 `* E
RewriteCond %{REQUEST_URI} ^/cgi-bin/% L( P2 F2 k- z7 n0 s% |1 y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
( o2 h, u0 A/ i. s( m+ C* O3 `( v+ oRewriteCond ${vhost:%1} ^(/.*)$
! B/ g* c4 N# v$ a: I) C! _RewriteRule ^/(.*)$ %1/cgi-bin/$1, N1 w8 M/ y' t  X

5 {. n2 ~% t6 n* i- G" o注意:vhost.map文件是域名和空间映像的文件,格式如下: 6 x% W0 o5 G4 ~% r' i. w
www.abc.com /vhostusr/www.abc.com
, z0 w2 Q: L" J& n8 {5 t  U' o# {4 Zwww.xyz.com /vhostuser/www.xyz.com4 _5 a) S" f1 A: z1 q2 c
www.cccbbbb.net /vhostuser/www.ccbbbb.net
% N! x6 }9 o; E( X1 x0 |.
9 K+ |" x3 c3 N.
+ D* n, J# t" L: m% E) i) [.& k+ C' L4 B2 `  }7 r  K
.
- t- Y7 i# x5 |: ^" L5 g8 Q) c(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)7 @1 k$ ?# V( o6 U( Y3 C1 q
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
- w4 G( i2 w% A% p7 I其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
8 p7 s, {+ i6 h/ s注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
2 ]/ r: B8 \0 W( e2 l) ?* t==============================================
3 ~4 x! Z; g3 e7 v方法二、# s- L  N) @# B, s. H6 D% |. c/ F

; e+ j0 [0 O! z1 r7 S4 }3 ]
8 k% ~9 g( E! ?2 z# Grewriteengine on
; [  g) r4 J/ arewritecond %{HTTP_HOST} [^.]+\.域名\.com$5 f+ {, H. p/ H0 J- v; {' D+ b
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
: \# E( a( P% ^% h% m* J  D/ T$ Urewriterule ([^.]+)\.域名\.com(.*) /$1$2/ O6 V$ ?& d5 \4 K* `0 p- P: l3 Q
其他配置文件- L# c/ ~) i4 l
9 I& h% W4 n% v8 s( l0 X- ^
接着在DNS中开设一个泛解析到对应的IP地址。7 l! u2 O0 f& b3 ], _
就可以实现下面的方案。
( Z* c" j: M' \7 v& {4 ]+ P$ C" M1 ~- x" c
域名:domain.com
" x6 Y! o5 _( |2 L绝对路径:/home/domain.com/
8 p# z& n7 o# ]6 o8 d: ?1 p' t5 @www.domain.com 自动解析到 /home/domain.com/www/
5 o8 v' M2 ^, Cabc.domain.com 自动解析到 /home/domain.com/abc/' b" v2 e1 i! O  H9 W
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹3 r# @- r; O+ a* U3 R# C8 S4 ]8 R
直接建立子域名名称的文件夹即可使用。不需重启apache。




欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2