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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
. G1 g1 m" u, t8 a& L7 M6 f" ^8 F+ O
RewriteEngine on# a0 s1 Y, P/ V
RewriteMap lowercase int:tolower
8 ^7 v& u- K& F* R1 Q% L( YRewriteMap vhost txt:/usr/local/etc/apache/vhost.map2 q# m, [0 Z% k
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
& U' t: C# R+ K7 ?6 d5 MRewriteCond ${vhost:%1} ^(/.*)$$ L: l; [0 ~5 ^" r+ d4 o
RewriteRule ^/(.*)$ %1/$10 W# F% S& n9 K0 f, s0 l
# u/ b! b6 J) |2 P* a4 E# {1 w

: ^4 p, m+ z5 |% J5 ^9 D其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
+ X5 G3 Y( w: v然后,在这个所在路径的目录下创建一个文件: vhost.map
4 [; n0 D# D0 K4 e( d7 ^* j内容为:
' s7 `& H) P, U9 I- b
- c1 G! L* a& ]. bwww.domain.com /usr/local/www/data-dist/domain
4 j+ i( b; l7 k: f+ g9 f) _. Z, Obbs.domain.com /usr/local/www/data-dist/bbs
& G! X6 J$ P" Y" d  u# S; K( L. Wanyname.domain.com /usr/local/www/data-dist/anyname
2 x  B4 F4 ~' L/ J! V* u/ n9 j7 U3 o1 B4 ~! p& H* U
以上部分都是:” 域名+空格+绝对路径” 的形式。9 p/ l7 Y. {9 O% ]8 a% y- n8 t
' k# X+ u0 z. r
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:- g# p+ |0 G1 C  j+ i
domain , bbs , anyname 等等,理论上可以无限。
: B$ d- U! Y: G+ {8 W& k6 N: j  j# U  P0 S1 a5 @
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以, i+ W2 a( I* {+ m, o, U
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。9 F& C- s- _( C/ w
- J/ G' x+ L: |3 i
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。$ }, S# ?, e1 T. a
第二步:打配置文件尾部加上. Y8 U0 m) T9 Q6 D/ L' V$ P
RewriteEngine on
6 x. [# z- c5 s. W& VRewriteMap lowercase int:tolower' u: l2 a& R+ H. ^  N
#定义映像文件0 i) S8 @# V; j6 ?5 g
RewriteMap vhost txt:/apache/vhost/vhost.map
. Y; Q6 D, o  V+ Q+ A. D; k#处理变名
" F. J& l' S/ X4 M& \  eRewriteCond %{REQUEST_URI} !^/icons/' W. K8 ^3 u. m0 }" _1 K
RewriteCond %{REQUEST_URI} !^/cgi-bin/
% Y' a0 E. c2 a. [5 e# K) LRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$& A2 O, x6 E4 l0 I, T
这里做基于文件的重新映射* C2 I" g2 C6 l
RewriteCond ${vhost:%1} ^(/.*)$9 o: |4 b+ h' Z, c
RewriteRule ^/(.*)$ %1/$1
: `* z5 w" e5 o, HRewriteCond %{REQUEST_URI} ^/cgi-bin/  p1 J$ ~! r+ l+ R: H7 w" V- R
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
: ^5 B1 b" N7 V2 }+ k) M4 s, ZRewriteCond ${vhost:%1} ^(/.*)$
' Q* ]2 r8 f" y' U6 ?* m  K1 K% ZRewriteRule ^/(.*)$ %1/cgi-bin/$1
' }* Y2 K( v  m
' ^% w' E* d# k: k; c- R注意:vhost.map文件是域名和空间映像的文件,格式如下: " a, L* @3 T  a* G( W. T+ a+ w
www.abc.com /vhostusr/www.abc.com
% p$ Q* e7 `% x: n1 K) n& r! g! Kwww.xyz.com /vhostuser/www.xyz.com" M+ S/ p  b6 E7 C5 h, x. x0 y$ I
www.cccbbbb.net /vhostuser/www.ccbbbb.net- k0 l" Q/ K- C
.
; s* H6 E( g7 D8 h6 [. v& D3 k.
" S: E0 ~# g; k) n.
9 }8 t: `( q* W4 O( [3 D# E7 h7 E( ].* J: K8 z  S; J8 `$ I! O
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)! n9 ^- S1 W# m* L2 p5 s$ G
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~, i9 T; `( ^* t% @4 a. I# t5 s
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~  A2 v. y) ]1 N; b! F
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~' X6 B% L6 M# @
==============================================
) d& j: i0 J' k+ \2 {1 k6 R5 Q方法二、5 g7 J# _# _  K6 l1 T4 S; n

4 q/ L- C$ f4 O) Q, a; v5 \, I* j% q5 I' k
rewriteengine on- t' H, m3 ^# L
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
' @% A2 b9 H5 X, T' F: j" i6 Orewriterule ^(.+) %{HTTP_HOST}$1 [C]
1 [  ]- Z. N% q3 Hrewriterule ([^.]+)\.域名\.com(.*) /$1$28 _- K) y1 i+ @* H
其他配置文件% C% I7 b% D+ g4 L" `3 H+ x

& v) D  C! T# k* Y* d0 S; u接着在DNS中开设一个泛解析到对应的IP地址。  ]# ]/ T; t+ N' I" J
就可以实现下面的方案。
2 v* ^1 L1 U7 t/ w5 h( X5 L2 b* e  Y
域名:domain.com+ l7 I  k% l9 W$ Q' \
绝对路径:/home/domain.com/3 m# V3 C3 A/ a9 C; m" |
www.domain.com 自动解析到 /home/domain.com/www/
: Q1 s8 n* }( r3 A8 Iabc.domain.com 自动解析到 /home/domain.com/abc/
7 Z% G7 ]" S4 Q" C等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
& ?) z2 F5 D* e直接建立子域名名称的文件夹即可使用。不需重启apache。

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