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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:" m0 Q( p4 ?$ m- x2 \

' t) _" j$ p% }2 C  W( w4 _9 tRewriteEngine on
) m5 e; Z6 X( z3 f' P8 BRewriteMap lowercase int:tolower
; G) O9 T+ g" Y$ ]2 g2 N' bRewriteMap vhost txt:/usr/local/etc/apache/vhost.map- S$ Z- Z% O$ D9 w( O6 S) G- Z9 W
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$# n: l0 l9 |' f" W
RewriteCond ${vhost:%1} ^(/.*)$9 i8 T) `: n6 H. r& X- i
RewriteRule ^/(.*)$ %1/$15 m6 t7 B( u; K, [
8 s7 v; `, {4 H5 b/ w$ `1 U5 I
4 b% t! \! Z( }9 [) z4 E
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
& e" d7 B" z0 ]4 s6 s' p然后,在这个所在路径的目录下创建一个文件: vhost.map8 U. E2 w" ?; \, d3 ~
内容为:
5 J+ u3 a* K1 ?$ {6 R
; v/ J2 n- M+ z& [6 W( v' o, x. {www.domain.com /usr/local/www/data-dist/domain
7 O6 s' q, I, y" A$ jbbs.domain.com /usr/local/www/data-dist/bbs
# s: \" Y. `: q. V. v/ danyname.domain.com /usr/local/www/data-dist/anyname: v. \8 @( h+ G% l& `- _. r

% q( v1 T2 P% R+ M以上部分都是:” 域名+空格+绝对路径” 的形式。6 }9 G& b4 \7 U5 S1 ~- S

! p; g! D6 w  _( m最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
& W9 h# Y0 a7 |/ _4 Fdomain , bbs , anyname 等等,理论上可以无限。7 j9 @8 G5 Q' y; V
3 C( f! P- x& P
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
, O; Z. `1 M; Z) p+ n! d随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。4 w$ D4 z: f+ g: F* U
/ g) k* H! E1 r3 \) N3 D
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
: x" f7 p9 N! I$ k第二步:打配置文件尾部加上2 V6 d" G1 |! c' Z) u. d0 N' }
RewriteEngine on' [* c0 e5 L6 n7 M* |* b
RewriteMap lowercase int:tolower
% p1 o: D4 A# X% n: I; h8 p( ~* ?#定义映像文件
7 P$ e- ~" G. R' WRewriteMap vhost txt:/apache/vhost/vhost.map5 @4 h; h% `8 R- H- ^
#处理变名
1 m9 Z2 a3 t, @% DRewriteCond %{REQUEST_URI} !^/icons/8 x; @1 D  ~5 y4 F
RewriteCond %{REQUEST_URI} !^/cgi-bin/9 G2 }4 f" j- z7 c. j, `+ P
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$2 d; L! h  i5 }+ X
这里做基于文件的重新映射% b/ d3 L5 k+ G  k/ {
RewriteCond ${vhost:%1} ^(/.*)$
% y- j* s. I4 P; JRewriteRule ^/(.*)$ %1/$1
0 ?! m/ |5 ^0 eRewriteCond %{REQUEST_URI} ^/cgi-bin/
# C" r) C6 ]. [6 e9 f/ tRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
; b# A1 P1 ?5 X8 M! v* z7 j7 nRewriteCond ${vhost:%1} ^(/.*)$! }/ ^. ]( N6 P+ E6 k! ]& u
RewriteRule ^/(.*)$ %1/cgi-bin/$1
3 q3 j; _. x) U$ t5 ^& K  U* U6 o4 l% F/ C) H5 v+ D0 h
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
& H) K' f, n0 f+ R7 G, r( ^3 jwww.abc.com /vhostusr/www.abc.com* v' _7 E' n0 ^, K; K, K# F
www.xyz.com /vhostuser/www.xyz.com
9 }! b8 Q1 X1 a% P! e$ ~; swww.cccbbbb.net /vhostuser/www.ccbbbb.net
; p* T3 n* p2 Z9 B' K3 ~/ x5 ^.( p8 D0 ~  t# ~! S* i
./ U+ K6 L/ N1 z! k# J) P9 j
.
7 n; ?& x7 Z8 }5 {6 g# r) y.+ r& O- J3 r; c! N* m5 b# H
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
9 W9 ?) N" n* K+ n5 l( s第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
  b: ?/ |6 [/ g# n1 j其实这个可以用php脚本来完成的,很简单的~~呵呵~~~. K. B# {( t& ]( R* i& {! t
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
# W  |9 |* }' f2 f0 S0 |==============================================
) ?2 z% K$ E, k% k* v+ @* d方法二、' p: Y* Z( ~& J3 L( K0 I, R

% S* J9 j0 v, e2 C7 u2 q% a
5 G  @& n# O  t& M9 f3 s6 E- prewriteengine on! N1 n, o2 D" X+ _! p: R* \
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$5 D4 f5 p' [/ g* T, [3 G0 Q* W4 V6 K
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
5 w3 f1 U3 p( b( P; D) n; v. |rewriterule ([^.]+)\.域名\.com(.*) /$1$20 x1 E! X9 @# p2 [6 k6 X# V3 s: N
其他配置文件% @- o* Q* `0 m" ]! [2 m1 b

; W% \) E& u% }接着在DNS中开设一个泛解析到对应的IP地址。( P4 D8 k( s7 `. ^' F
就可以实现下面的方案。% E$ p* c% \4 `. I
- c; ^; E2 H5 U, F3 ?/ w
域名:domain.com
4 U# N3 p( a" w5 y绝对路径:/home/domain.com/
4 V. I3 a  y3 Y+ J$ y0 w- k. Awww.domain.com 自动解析到 /home/domain.com/www// _4 k% q# |1 U/ F
abc.domain.com 自动解析到 /home/domain.com/abc/1 `8 y& I  U  r5 }! ^$ u5 X
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
6 A! c0 {4 \5 I+ Y" w  u: b直接建立子域名名称的文件夹即可使用。不需重启apache。

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