|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
3 _7 |) @2 O6 C" r$ k2 m% l9 p9 t3 {8 X: V) w9 g
RewriteEngine on2 c5 o' ~8 o- ?2 ~2 G( N7 z
RewriteMap lowercase int:tolower
& q$ W! X! g$ \; i% U: PRewriteMap vhost txt:/usr/local/etc/apache/vhost.map0 u; P4 {6 I, w0 M! S! q
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ j& j* h8 s( u" j$ j" mRewriteCond ${vhost:%1} ^(/.*)$8 k _1 n, v8 |" H4 e, t7 n
RewriteRule ^/(.*)$ %1/$1
2 |! ]" i# E: Q, m. N3 C: H S/ f! Y/ Z5 o
0 P7 `$ W0 a; d- G9 I& h! `
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。: R1 ^$ q4 ^( l$ @; c
然后,在这个所在路径的目录下创建一个文件: vhost.map
' y; q* z" _, m. m内容为:
, }2 ], t* L0 p2 Y) r; q2 I! M7 t9 ^1 @: B& B0 ]9 E
www.domain.com /usr/local/www/data-dist/domain
% }8 V) ]2 Z$ ^4 o- Jbbs.domain.com /usr/local/www/data-dist/bbs1 }" b5 z, q7 ~' x- W5 o* l- p1 ]
anyname.domain.com /usr/local/www/data-dist/anyname! d0 e5 E8 u7 R( Q
0 M s M) ]3 s7 v2 t- V以上部分都是:” 域名+空格+绝对路径” 的形式。
& x/ n# ~: p: w9 r1 t
' I; G* ]5 y& q# h& L5 J: _最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
* o' t$ G4 g$ H, U5 p. [domain , bbs , anyname 等等,理论上可以无限。( O; o$ i$ a+ C( ^) v
. y) N7 S( S+ ~这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以4 R& M+ r+ I& z! s5 a+ O
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。$ G9 N! n& ?- z' n2 m. H
" Z6 P: Y! c# C0 t; X# W; W4 J
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
3 r* d7 Z* W" R% L8 j+ f& f% t9 O第二步:打配置文件尾部加上
( k7 X) H5 ~# a; ~/ {3 NRewriteEngine on
/ q' z* D( @. L. b& k1 hRewriteMap lowercase int:tolower
- p7 f5 t# d9 U/ @#定义映像文件+ M5 G( Z3 L$ O! k$ z
RewriteMap vhost txt:/apache/vhost/vhost.map: ?( k4 |! z: }% s E) R# {! J. v, O
#处理变名
7 [$ t# X) y. |7 \. x5 ?0 a, @RewriteCond %{REQUEST_URI} !^/icons/. w4 S7 d U# d! \7 n3 v( i3 o' c
RewriteCond %{REQUEST_URI} !^/cgi-bin/
9 A5 K9 v( m8 Z. U- mRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$7 K. D* ^. X- U* b
这里做基于文件的重新映射
! U; v0 ?5 E7 H5 f! M+ rRewriteCond ${vhost:%1} ^(/.*)$
U9 I. d, Z. c7 vRewriteRule ^/(.*)$ %1/$1. O0 ~# U+ C3 Y' ?- W7 [* q
RewriteCond %{REQUEST_URI} ^/cgi-bin/4 P: z0 K: p( _; X1 X: m: F; M, }
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 Y, \1 ^$ @. q/ Y, r6 }8 c- YRewriteCond ${vhost:%1} ^(/.*)$
% [3 i$ h; a( X# z, k9 M& CRewriteRule ^/(.*)$ %1/cgi-bin/$19 O7 Z4 u$ K3 y; K) I
, P* M" F/ Q5 i) F* z
注意:vhost.map文件是域名和空间映像的文件,格式如下: 9 t: \4 N" Q6 ?* L8 o4 d6 O
www.abc.com /vhostusr/www.abc.com
. A4 Q0 f. R' Y2 d1 m" Y- uwww.xyz.com /vhostuser/www.xyz.com2 Y/ p% G& J! f5 o" j- \ s4 g1 d6 E
www.cccbbbb.net /vhostuser/www.ccbbbb.net
# T' i F+ t6 e; I: L.
6 M( G9 B6 K: y' r+ j- K: e3 ?. C.
2 i. Y+ d; J3 m7 m( k.& @9 A/ {9 a% |, p
.
' c8 I3 H7 y4 r0 b(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)) C+ B5 ~1 Y/ X* N( G" y
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
# h4 a1 a5 Q" n% P U0 ]其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
$ |6 Y1 p2 L% A/ G3 C0 R注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
% Z2 p7 I$ b% g& i/ v==============================================
j4 L8 [3 ^( V3 m: p- q8 |方法二、
3 ~5 [' X, P0 ~% X) A
" b6 o! P k6 K* y2 q! {# m
1 C. @8 l" L, H4 H8 ~6 K5 Crewriteengine on
' T8 A- C, R+ J* G8 h Frewritecond %{HTTP_HOST} [^.]+\.域名\.com$
8 e8 w- _9 g$ A! Qrewriterule ^(.+) %{HTTP_HOST}$1 [C]
! c" w+ x ?) ]% k% G* Yrewriterule ([^.]+)\.域名\.com(.*) /$1$2
- }: D5 [0 v+ ~, v0 K. h其他配置文件; G! [& h- B9 @$ T0 ]4 |7 b
3 [ I: A+ V; n/ ~' \
接着在DNS中开设一个泛解析到对应的IP地址。0 U: x8 N. Q/ q; Z! R; `4 ~! I! n8 o
就可以实现下面的方案。: F0 ^3 D0 r+ D; G% J+ @
4 c, ]$ ?( M. F7 j1 j+ x7 T; w
域名:domain.com, y( t. @2 J* N. h! e4 v. i3 g
绝对路径:/home/domain.com/
* d1 R9 N: d4 }www.domain.com 自动解析到 /home/domain.com/www/3 R+ r2 H+ g* J3 S) Q- V
abc.domain.com 自动解析到 /home/domain.com/abc/( T. L) W$ Q# t: p6 G
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
8 o7 c7 N* P0 k7 A# U8 l直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|