  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14219
- 金币
- 2400
- 威望
- 1647
- 贡献
- 1348
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
+ m8 `6 u8 _6 B
. z' S8 W+ n; v0 c& g3 n# N+ sRewriteEngine on0 m1 ~" c- }. Q7 _
RewriteMap lowercase int:tolower
9 k( M# W3 d1 o, h& ORewriteMap vhost txt:/usr/local/etc/apache/vhost.map7 V7 M& A* R+ S3 C% g& X& h' {
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" m$ O* ]3 P0 s. r
RewriteCond ${vhost:%1} ^(/.*)$
/ k. k# s$ i- s* d' ERewriteRule ^/(.*)$ %1/$1
* G' G! j; c5 x' R& D9 Z2 F
8 E! ?6 F' L( o7 x- P0 _$ ~- P$ `' U
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
. J+ j7 W: d2 ^8 D9 x# v6 E然后,在这个所在路径的目录下创建一个文件: vhost.map1 R8 X; e, h% ^5 R- Z! U
内容为:; N" t, X. f& E- r4 Q
# I# Y. P0 x, Z( `- S, A
www.domain.com /usr/local/www/data-dist/domain
0 ]9 N* ?* n' F4 J4 f) `+ ibbs.domain.com /usr/local/www/data-dist/bbs
% y2 ]( D& B% R) }" \7 Xanyname.domain.com /usr/local/www/data-dist/anyname2 d$ X+ A7 `; d
! r5 X. i a7 N0 q3 s2 N* W
以上部分都是:” 域名+空格+绝对路径” 的形式。+ W, n: ?, W) s% U7 K2 A5 |1 |
" E" d" G% U# f& i) ]最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
+ F; m9 Z1 M$ ldomain , bbs , anyname 等等,理论上可以无限。6 p; d \$ I$ ]9 ]% x; p
" K) D. ^4 @) @
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以. f- \3 X" A+ W
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。$ S+ T. V) ~" b8 ]( z- b% G8 k! k
& T6 l! ~- }0 R5 o第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
7 J& o8 [& _5 F" K第二步:打配置文件尾部加上
# a* F, h# I$ Q* b$ A- |RewriteEngine on$ L; A! P6 W, z8 U+ K1 q" S0 B r
RewriteMap lowercase int:tolower
\, d: s/ U$ G' Q) V#定义映像文件. |! `! U3 z G* ]6 X4 t# S
RewriteMap vhost txt:/apache/vhost/vhost.map* v; ` m$ M2 Z& C/ Y T5 l
#处理变名( J3 W& j3 |+ [7 O; q, j+ x( B
RewriteCond %{REQUEST_URI} !^/icons/2 Z" J3 |; H2 f2 E3 ~4 B) y# v
RewriteCond %{REQUEST_URI} !^/cgi-bin/- } o6 P* h1 K$ `
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% _' i' V H; D9 P5 C) c; ]这里做基于文件的重新映射9 u# u, G) [; e4 Z/ Q0 z H
RewriteCond ${vhost:%1} ^(/.*)$& i' O, h% V2 q) S( `! O
RewriteRule ^/(.*)$ %1/$14 G+ ~7 Q7 w+ }5 @0 o2 h, }
RewriteCond %{REQUEST_URI} ^/cgi-bin/4 Y% M8 d+ ]; m" m9 W2 O% h
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
- E" y$ H( V! I2 ~. c3 [1 ]; zRewriteCond ${vhost:%1} ^(/.*)$
4 g5 i6 B! y" {, ^% FRewriteRule ^/(.*)$ %1/cgi-bin/$1
+ o2 J X2 D- z! r
1 x. w2 h7 j/ Y. K9 @注意:vhost.map文件是域名和空间映像的文件,格式如下: ' p: N7 l7 z& v/ Y8 e
www.abc.com /vhostusr/www.abc.com# ?% R, O9 Z' n% z5 m
www.xyz.com /vhostuser/www.xyz.com
, u/ I6 C' }2 @* ^www.cccbbbb.net /vhostuser/www.ccbbbb.net$ s, \; \! g7 x# l* G; U% [) N
.
0 x8 [; Z; S, Z7 r: A.8 }; G1 Z7 P' N$ a% B
.
# M- r$ H. u! p8 _2 T.
4 ^, g h& L( e2 B/ S, n(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟). i# J" \! |& e. t/ B% }
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~% M, O$ L% Q( P! F" P) ]/ a
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~( K/ p% s7 v/ S# U O. d9 I
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
; z4 H) Q6 S% F' {, {, J P==============================================: F. l3 h5 E$ k) i! i& c% t
方法二、; ~# k" j3 m" o; G4 h7 A' {* W4 y
7 {3 s% H( l- o6 ]9 H% |2 h1 K; ^
# g! C( X+ H% `3 q) w( n/ O
rewriteengine on9 Y9 ]+ `3 X6 e6 e$ o
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$! T' D7 Y Z H( O. `
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
& j& j* j4 x; E5 t: k% o5 arewriterule ([^.]+)\.域名\.com(.*) /$1$2* H* Z# k5 G& g1 ~
其他配置文件5 h. m: T6 ~! L# s, V
; @9 q: F+ k/ \/ ? [& U
接着在DNS中开设一个泛解析到对应的IP地址。! S9 M* L3 k; ]& c
就可以实现下面的方案。
9 ? A0 q/ D6 R9 u5 C/ U" e3 t0 n: m1 C3 k' D8 I% `/ m
域名:domain.com
* i T; F, e* @2 p绝对路径:/home/domain.com/
+ @$ T/ l% ^! U/ ^2 H0 ywww.domain.com 自动解析到 /home/domain.com/www/
6 b! ?! |, G/ H3 I3 ~) eabc.domain.com 自动解析到 /home/domain.com/abc/3 O4 q) e8 N% H
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹- e! H3 ?9 Z4 m
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|