|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:- e" Z* O) V l3 P$ D) a I( [* S8 W
8 u; h1 v7 Y4 w0 V F# H- SRewriteEngine on
! f" \; j. h5 @' A# f* p# D& ORewriteMap lowercase int:tolower. i6 _# g4 e8 n; j8 Z9 m( p# K
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
, N. v, I) ]' ^* e }, y$ u' sRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$% T+ t3 o5 K. L) A/ F6 \; E
RewriteCond ${vhost:%1} ^(/.*)$/ N) e3 o' S* ~1 T
RewriteRule ^/(.*)$ %1/$1
3 S) c q9 b: @# C2 P% N6 f: K4 X; ]
, q5 l% P' |7 z4 S, v2 g
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。( C6 c0 g" y: T) ?
然后,在这个所在路径的目录下创建一个文件: vhost.map
+ y2 B% E7 k3 w( G8 {0 F: \ m内容为:
& M2 W7 O' B8 c/ E- m: D2 j9 K/ ]. C% C' e# a5 X
www.domain.com /usr/local/www/data-dist/domain. M1 a* f" y" Z
bbs.domain.com /usr/local/www/data-dist/bbs
2 z- ?* [/ C7 i; ], u! L# v. b; _& O6 sanyname.domain.com /usr/local/www/data-dist/anyname7 ?$ Q+ o: [; ]6 Q( \- W1 V
! B1 I$ O E2 K7 e
以上部分都是:” 域名+空格+绝对路径” 的形式。
1 X4 V9 R6 n- ]4 @( t) i0 G, F% d- G+ d. V7 ~' K6 r4 d
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:$ @% X5 l' \; _& ^
domain , bbs , anyname 等等,理论上可以无限。* R7 J' v! B9 Z: B# S# q
1 A2 w/ @! L$ F+ T* z
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
* F1 j7 y5 t& t0 l g" P+ v随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。& s0 Q# N! z, x) D; m- j
. g5 y0 Z0 `( c; X3 D' k6 _' H) s
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。4 T9 _, Z) J% s- n( U \/ i" h" Q
第二步:打配置文件尾部加上
& T; W# Z" z, U# O, s0 V$ k& XRewriteEngine on
0 Y" B" f- L- `/ n0 fRewriteMap lowercase int:tolower8 L7 d, _5 ?- Y6 i8 E& A
#定义映像文件
& h. r" B" u; h% Y3 p" J) e3 bRewriteMap vhost txt:/apache/vhost/vhost.map/ ~2 Y( N& y: G" ?6 b
#处理变名
r. y) e9 [+ }' R/ hRewriteCond %{REQUEST_URI} !^/icons/7 z+ n1 l, D1 i ]. M- S- i4 l: n, E
RewriteCond %{REQUEST_URI} !^/cgi-bin/
. J3 ]( [3 b5 B# s$ K/ yRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$0 X8 \! A9 A0 S4 e
这里做基于文件的重新映射
* S, Q& o3 K' p; s( M/ q4 }RewriteCond ${vhost:%1} ^(/.*)$
& t9 f1 b8 f9 G6 FRewriteRule ^/(.*)$ %1/$1+ R8 D9 x& m; p6 b4 M: \# a" h
RewriteCond %{REQUEST_URI} ^/cgi-bin/
# S, o9 h3 R5 V2 O6 }7 RRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
! i9 K& @" a2 T2 B \RewriteCond ${vhost:%1} ^(/.*)$
& A: C6 J1 i' K% c. c+ ERewriteRule ^/(.*)$ %1/cgi-bin/$1$ b, k1 C. G; v+ k% p+ y( q. _
8 U0 `) p; A/ B {2 {2 _$ {. Q注意:vhost.map文件是域名和空间映像的文件,格式如下:
; D0 l' l4 C6 H/ K( b4 o6 @www.abc.com /vhostusr/www.abc.com6 K& l0 r7 x" U7 `3 f9 f
www.xyz.com /vhostuser/www.xyz.com
E8 i3 N/ x, f4 z3 g t4 C2 T6 c4 kwww.cccbbbb.net /vhostuser/www.ccbbbb.net
! y1 @9 R, m! C k/ A" r.
3 m8 _; J# v; H0 q$ x( Z) n4 M.. g; G, ?- @, M. q+ R
.5 A9 ?2 @' I* @3 l2 P
." ]1 s. ^% ^$ @/ Y2 p/ r2 b* K+ _, [
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
# o x5 k" Q4 P第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~) t5 g# w1 ]+ K, J7 k; U* R
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
& [: I- d; y0 l7 R5 V3 V注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
) y* e5 a/ i2 t$ k: H==============================================
8 K# X: U0 O. _/ b& \# G方法二、; \' d+ f7 }- _. P( [
) a4 e' o& n7 X6 k/ a
, s4 d9 A8 O0 u2 ~3 T b
rewriteengine on
3 t6 m5 {/ V4 M: Wrewritecond %{HTTP_HOST} [^.]+\.域名\.com$. [$ O* G1 o% \" u
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
1 k, }* z% f" D& x" yrewriterule ([^.]+)\.域名\.com(.*) /$1$2! y* V9 l3 x }& u! c( [' Z
其他配置文件
& i- L5 I) k: D( X. p
, _, H% y' z/ H" c; `接着在DNS中开设一个泛解析到对应的IP地址。
9 [' x/ |" r. t" h$ e( ?就可以实现下面的方案。
3 O+ ~" j( E! D: F/ A' n; j6 B4 [
+ b! b* v' q; D, s4 b域名:domain.com" k, F' A6 a4 i% N# I
绝对路径:/home/domain.com/
* s# k( C; l- ]% T( Lwww.domain.com 自动解析到 /home/domain.com/www// |( a' Y s8 ?/ n" M2 T* d' Y
abc.domain.com 自动解析到 /home/domain.com/abc/
R1 @ y% v7 b等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹1 _5 Q7 J; L' X# j
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|