获得本站免费赞助空间请点这里
返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:3 n9 N# u4 F! Z, l9 G) y

- V4 U2 {1 M9 Z6 g) W' QRewriteEngine on
/ t9 J2 u( S  m5 z) T8 b: DRewriteMap lowercase int:tolower$ v4 ?' C0 t) @. U, N0 O
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
# z4 u' z( O, P0 {0 F! GRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$2 L/ Q, }) J1 O, O! E( P
RewriteCond ${vhost:%1} ^(/.*)$* C# i! ~6 M' `4 j( ^' \$ o2 J
RewriteRule ^/(.*)$ %1/$1
4 Y0 c3 ~  I+ t: ^$ p
. N- \+ w6 O2 g% n, y6 Q; Z2 `5 X' }- X2 A
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。6 m$ z6 U: _7 d8 n9 y$ i9 I
然后,在这个所在路径的目录下创建一个文件: vhost.map. d( i' Q) J& m6 v9 g2 O% a+ [
内容为:: ?! l( o2 J+ u: t

/ ?8 ?5 U9 h. y# l4 ~1 y* b+ Hwww.domain.com /usr/local/www/data-dist/domain
* z$ W& t. _4 ~7 X( e5 o) V" |bbs.domain.com /usr/local/www/data-dist/bbs
* F  H2 t. K7 }, M7 n1 X4 K( nanyname.domain.com /usr/local/www/data-dist/anyname
/ X+ \! ~& i! N! @' L# O" n
, [+ @0 C' H: w2 J0 b以上部分都是:” 域名+空格+绝对路径” 的形式。
+ {8 d- S; ^2 D" ]1 e6 {, Y9 Y% s1 w5 m" E0 r' ^2 {( N
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:/ s2 }8 G4 M) T& p& ~8 O! v6 [( s/ V
domain , bbs , anyname 等等,理论上可以无限。
$ k5 `1 [: X2 o4 I
# d% y" `# L& l0 _这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以+ F2 Z8 I- f2 B" _
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。7 \# i2 n: F9 n( J* X' Q; i
* f7 @2 E4 i# h! Z8 |4 [
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
0 q& _6 s! v( ^7 W  O8 S: Z第二步:打配置文件尾部加上
" R2 T" b: ]. M/ {RewriteEngine on
7 p6 ^) B, N2 }7 U$ XRewriteMap lowercase int:tolower' d- r6 O8 Q0 s5 I8 X2 E8 D" v
#定义映像文件
. O0 z! ~  Z. xRewriteMap vhost txt:/apache/vhost/vhost.map- P1 H; m+ b: P9 Z; m9 @. E# R( v1 R
#处理变名
$ z# o: ~1 T* p& R! [9 uRewriteCond %{REQUEST_URI} !^/icons/
& O2 `( [" m: y( B; z! ORewriteCond %{REQUEST_URI} !^/cgi-bin/0 r/ X" F1 J2 R- B; l
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$! ]+ D; n' I$ O4 Y! J$ G1 S. k
这里做基于文件的重新映射
) A/ h; f7 z1 y9 ?& A5 |RewriteCond ${vhost:%1} ^(/.*)$
1 S4 O7 Y5 Y7 A5 lRewriteRule ^/(.*)$ %1/$1! l0 R% x$ r: ]) b! A4 ?1 V6 L
RewriteCond %{REQUEST_URI} ^/cgi-bin/
8 L, b7 C! A  YRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$% h: J: q  \# e4 V3 o2 f
RewriteCond ${vhost:%1} ^(/.*)$
( G! ^$ A( Y9 z3 `' g8 ERewriteRule ^/(.*)$ %1/cgi-bin/$1
9 q% g/ r. W/ j" ?; N- o
7 n0 s4 |# E( m% K6 W注意:vhost.map文件是域名和空间映像的文件,格式如下: 
& H' M1 H( s3 a; y. Q7 E2 z, {www.abc.com /vhostusr/www.abc.com0 i/ z$ R" E0 I1 K
www.xyz.com /vhostuser/www.xyz.com3 \. Y- l$ Z# ~4 D. n0 H1 r) k
www.cccbbbb.net /vhostuser/www.ccbbbb.net
) G; u; h1 C/ W! C.! ]" Z( G- H8 V5 L; j7 b
.
# Z6 o: J! `$ C8 M9 l! T- {.
2 |0 c3 l& w" D, C.: E( t8 R6 l" C
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)( F3 F6 q2 s6 ^1 Q
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
0 \- ^: \3 t: U4 y) C其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
9 z, ?* c1 l' q% t注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
# _0 F% T* L' \; O( \  C==============================================
# U1 h: t) C0 t' B1 O; {1 D方法二、: n$ X3 k+ H" \# T& R  V' L
) a& W5 j9 v: [
  `0 y  ]: p3 T( G
rewriteengine on  v; O- l) ?0 J8 Y4 O7 C
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
: u9 @* o6 K, y0 t9 c( Nrewriterule ^(.+) %{HTTP_HOST}$1 [C], s7 |* i- R* j9 P* d8 r
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
7 {3 B# M" b" k7 P7 ]/ j" X其他配置文件
! _7 H" e' H6 g  c
- f: i+ B; j: h) D  Q- [% O接着在DNS中开设一个泛解析到对应的IP地址。
' Y3 V4 Y* r# Y% ]就可以实现下面的方案。4 M& B8 l! i. S/ g

. `9 Z8 J! W4 {/ x' p# c$ o! O域名:domain.com
% u- x$ N- \4 X绝对路径:/home/domain.com/
# a0 w) \) _% A# F3 [) twww.domain.com 自动解析到 /home/domain.com/www/9 ~2 b' ~7 I/ ^2 K) E9 i; l9 ]/ @' X
abc.domain.com 自动解析到 /home/domain.com/abc/% {# k- I- R( j7 A. V
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
- X3 o% ]. r, @  G; U) z! C1 n直接建立子域名名称的文件夹即可使用。不需重启apache。

返回列表
【捌玖网络】已经运行: