|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14323
- 金币
- 2447
- 威望
- 1647
- 贡献
- 1395
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:0 h5 ^: w2 u8 P$ B
0 {3 V$ n) x- R9 G+ zRewriteEngine on9 ]- j3 Y- M* D' v1 U. A0 z; _4 J
RewriteMap lowercase int:tolower- I, V! f7 o- O
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
, Z' E3 _2 x' j( [! yRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 i' a$ w. ~% N `9 ^: F, x- v4 I
RewriteCond ${vhost:%1} ^(/.*)$
/ m+ }2 o( M$ i% rRewriteRule ^/(.*)$ %1/$1
/ D1 O, x) q. J: }7 n& g
9 j; ]6 @$ X4 x, x' H+ B% K. ?
# X* e' |: x& ?& t7 j ^其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。4 H0 |2 ?1 F- v# M- K+ U4 P
然后,在这个所在路径的目录下创建一个文件: vhost.map
' {8 x. t" `$ p' }4 F6 h内容为:- k, [1 D. K. }, p% K' J3 m
" @, `) c0 n7 Q3 {www.domain.com /usr/local/www/data-dist/domain
; W+ }% a9 z v( Z' v- i( z4 r2 _bbs.domain.com /usr/local/www/data-dist/bbs
- l$ r' H% Y( q1 Z" tanyname.domain.com /usr/local/www/data-dist/anyname ?5 v Q! l! W" i
6 r/ M4 U) T7 w- X以上部分都是:” 域名+空格+绝对路径” 的形式。
# }9 A, I5 B" D
+ w9 Z! n" i- m9 ^* L! [ z$ K8 u最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:, n- I2 ?( }$ x1 Y5 n& J K) ?
domain , bbs , anyname 等等,理论上可以无限。
" I; V3 G& |7 ?5 w5 h
/ \. P' v6 a8 U% s2 T V+ ~这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
v$ C9 S- O9 @% L随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。: r% _, Z4 \- Z4 ^
" Q, P7 Y( a' G3 t0 k6 g; i& ?第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
1 J5 S1 a B4 ]4 U- Z b' H第二步:打配置文件尾部加上
. H) X0 A. o( U$ d- CRewriteEngine on
' P5 u; O% l. ]RewriteMap lowercase int:tolower" L! O$ K/ [2 J
#定义映像文件+ ]; j" x1 P4 Q
RewriteMap vhost txt:/apache/vhost/vhost.map. E7 m# t( K" B& D% y
#处理变名7 j8 J* o7 O6 q' _
RewriteCond %{REQUEST_URI} !^/icons/
( j9 v8 S1 }# L" F2 O# cRewriteCond %{REQUEST_URI} !^/cgi-bin/7 k. ]1 a+ I2 A2 r6 Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
8 e2 K& X+ `- s/ I这里做基于文件的重新映射8 M3 Z* y% J0 J+ K0 _+ U
RewriteCond ${vhost:%1} ^(/.*)$
8 V0 w9 c& | IRewriteRule ^/(.*)$ %1/$1
- E9 y; |" H. ^- u- x6 {1 l' LRewriteCond %{REQUEST_URI} ^/cgi-bin/
: a* K2 Z" {. W8 f5 bRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$! U9 V( D/ r6 {9 h+ [ j9 V
RewriteCond ${vhost:%1} ^(/.*)$
7 ?9 o: N9 w& c6 fRewriteRule ^/(.*)$ %1/cgi-bin/$1% R& _0 F; |' j4 B, B' ?3 x6 }9 \
+ X9 U" L( V. N8 s( W
注意:vhost.map文件是域名和空间映像的文件,格式如下: : R, [& K" m7 F) w9 ~" `
www.abc.com /vhostusr/www.abc.com
3 ~. c. B+ M& Cwww.xyz.com /vhostuser/www.xyz.com4 H# g7 p$ d( F' d3 g: n
www.cccbbbb.net /vhostuser/www.ccbbbb.net
: ~0 ]) }2 g( ]7 P3 i1 q+ |5 Q.
) E! [. ~" V( P# a6 Y) u: g$ }1 i.
3 T) ^$ ?3 b# R+ D3 t7 u7 _.
# }% N/ N" b9 u9 I./ }' l, ]6 Q: k8 I! M2 c, V8 W
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)% W) E" z. q5 B
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
1 X3 ]" |* V& v7 R! y2 w1 ~# c其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
6 L. [3 I6 z) V( q( R. u注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
R3 [- {: K& x$ Q% i7 b& b' y==============================================
. N! G: l9 L( X( n方法二、2 A" c; r0 \0 S2 w
5 p5 i D+ i) ~7 h% b8 K, R. U
; | v P% w$ f2 q
rewriteengine on! Y+ L, U, @5 R$ Y z7 ]2 u
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$/ Q! y# r7 v' B
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
# n$ z E" r5 E Drewriterule ([^.]+)\.域名\.com(.*) /$1$2
9 O X5 J# b' ^1 c u% [2 `其他配置文件4 Z$ f- R2 S' B) E$ X; r
/ F9 h9 A% R6 j0 Z/ v/ G" {5 {- d接着在DNS中开设一个泛解析到对应的IP地址。
5 f9 ~( z$ p$ c: k9 Z就可以实现下面的方案。
$ Q5 t0 N4 T" l2 h+ I6 s ^$ J7 G Q. ^* ?
域名:domain.com
" C3 |8 H+ ?* u/ Z; I绝对路径:/home/domain.com/
# ~' l! n/ |3 U- R+ d- Bwww.domain.com 自动解析到 /home/domain.com/www/2 m+ g9 r6 o& t& U6 }2 X
abc.domain.com 自动解析到 /home/domain.com/abc/9 ~ y$ w2 Q. O/ u1 t
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹) [- W6 D3 c) j7 [# a0 b7 w. ]9 j
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|