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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
; o. E- }, W! @) n( |2 m) x0 l, u# n% w
- }& C$ |8 v- K# z3 K7 K1 URewriteEngine on
7 j. G; @% F+ W& x9 W& i9 pRewriteMap lowercase int:tolower5 ^2 f. \' _0 G6 o, ~' t0 |
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
+ L3 u; \  N1 w  C* o" ]1 H( SRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
8 r$ a( H& t( V3 S/ jRewriteCond ${vhost:%1} ^(/.*)$
  ~; Z0 d! Y9 |* L/ ORewriteRule ^/(.*)$ %1/$1
( C9 T& d& w, K) Y. x4 f$ [2 u
% O6 F$ x) j- k6 _6 e6 H  G
6 l+ ?5 L( `( @7 ^0 ~  j" G其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
* i- _5 w9 d+ z$ m. |. T. T" o然后,在这个所在路径的目录下创建一个文件: vhost.map( j; }9 d. K; K4 g
内容为:
. a) R# {1 Y1 i: L9 z$ D7 Y
" b) a* q+ F2 E8 W4 ?% Dwww.domain.com /usr/local/www/data-dist/domain
; N: u( e3 S! j/ I4 V; _- i; |0 `bbs.domain.com /usr/local/www/data-dist/bbs
& W4 |2 N4 J  Xanyname.domain.com /usr/local/www/data-dist/anyname( Z+ |% t: u" e2 q/ Y* q# c6 q

0 ^6 f' \% V0 Q1 h以上部分都是:” 域名+空格+绝对路径” 的形式。- @% }3 P+ J' G1 n! j
* {, d( O" B$ C2 `+ F
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:4 i3 @$ i% w! W5 }
domain , bbs , anyname 等等,理论上可以无限。' G! T! @- c2 C& i% |
( T- W+ |9 `0 i, o4 }( T
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以- F' G0 q) F+ |+ F8 C. B6 e  S
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。( M5 o6 u6 Z3 w
/ X  Z; F. a' B, w
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。* [0 d- G" c" j: w
第二步:打配置文件尾部加上- D1 j) r  H$ A# L- s
RewriteEngine on
4 K; Q6 Y* N! M" |# u+ WRewriteMap lowercase int:tolower: w0 O( ~- d8 C+ p3 v
#定义映像文件# @7 b& g7 U9 m! S% F0 b' J
RewriteMap vhost txt:/apache/vhost/vhost.map6 A6 _  A4 S7 a4 ~4 }$ @
#处理变名3 \( U+ Q' Z" U2 [, g
RewriteCond %{REQUEST_URI} !^/icons/) u$ o: K$ z# M* Y: l! `
RewriteCond %{REQUEST_URI} !^/cgi-bin/7 H& R4 F0 w$ m0 A8 z
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$+ c) l* ^# y) o2 n% L$ J
这里做基于文件的重新映射
/ [( r! {% ?$ _, o7 H+ J0 }. }RewriteCond ${vhost:%1} ^(/.*)$
+ r7 A, ]$ ?' Q" xRewriteRule ^/(.*)$ %1/$1
; d3 p/ P/ a3 o, N; qRewriteCond %{REQUEST_URI} ^/cgi-bin/+ m) ]& x2 E, N2 v
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
, j+ k0 c2 V& o) A& U/ k; kRewriteCond ${vhost:%1} ^(/.*)$
, y# p+ O+ g- g- T! qRewriteRule ^/(.*)$ %1/cgi-bin/$1# Z  F  w# f# ]4 k- w

. k0 k9 K6 I0 X注意:vhost.map文件是域名和空间映像的文件,格式如下: 8 g8 ?, t# ~: g+ ]* V8 G' Z
www.abc.com /vhostusr/www.abc.com9 B5 i& J* ]5 r# y& H# f. K
www.xyz.com /vhostuser/www.xyz.com
' l  v8 [9 S( A8 E2 k9 ?www.cccbbbb.net /vhostuser/www.ccbbbb.net
2 E) y) I) @2 R' Y.7 t0 ^9 I' a' P5 M+ c
.
. |) d+ M* V- X.1 J$ H. {/ P0 j& E, q8 N
.3 K) k! P  r# b, k- }3 f
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
+ c8 }# [) L3 o7 U7 i第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~- R5 s/ {" y. @
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
' J% {/ `' W) F9 N( K( |1 s  T注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
8 ^! j6 I. c3 L. r' p! U==============================================
% q: {3 i9 L5 m- a2 ^  M' R方法二、1 t! Z6 V' \, h! {8 w

& {4 r! k+ ]- @9 V& X2 t2 ^% f# G  m( r
rewriteengine on
# S# B4 g/ g$ Y' Zrewritecond %{HTTP_HOST} [^.]+\.域名\.com$/ k' o- ~' f4 K4 n7 a7 R/ Q
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
4 i/ k: l' w5 Drewriterule ([^.]+)\.域名\.com(.*) /$1$2' {1 ~: y7 R( T
其他配置文件! P( \% [  j% B* }' Q# h2 t

/ w: N* H  I) n接着在DNS中开设一个泛解析到对应的IP地址。. k, F% J* j7 T& r+ a# _+ S, @
就可以实现下面的方案。
7 U' x; o) \' ^9 x2 x3 h2 a4 c2 w/ g: Y" w" ]
域名:domain.com. w6 |& @4 y: _5 y; `# I
绝对路径:/home/domain.com/. T* M5 j& }& k
www.domain.com 自动解析到 /home/domain.com/www/# n$ l" n- D6 q' C1 o8 N  O
abc.domain.com 自动解析到 /home/domain.com/abc// _( _7 h' m6 [1 N$ c% _  R
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹, ?, A' x, {8 T+ \$ M- |
直接建立子域名名称的文件夹即可使用。不需重启apache。

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