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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:" C) c/ T; D; w2 S  a; G
# B9 X& P( M2 {) y2 V8 h
RewriteEngine on
9 o/ u) @/ X# @, N- aRewriteMap lowercase int:tolower5 N: I7 H4 N  m; N  J; Q: _
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map9 v3 D9 l9 b" A" S" X5 z
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$* U5 o5 o8 j2 C1 h# T$ G$ j0 Q/ Q
RewriteCond ${vhost:%1} ^(/.*)$5 ^) ^/ T- k7 d
RewriteRule ^/(.*)$ %1/$1
$ d% t  J/ U6 M5 `5 P% _  J+ c! ~/ w# y+ A5 L
/ m; t8 [3 @& I
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。7 W1 A" Y5 R, j3 }  E
然后,在这个所在路径的目录下创建一个文件: vhost.map
  b5 L3 H' A$ ~- h# n内容为:* f6 |, e2 p+ `6 A% o# m# b
$ A; O7 k, b, J( c
www.domain.com /usr/local/www/data-dist/domain3 n$ a8 K5 W3 n( c) _/ |6 T
bbs.domain.com /usr/local/www/data-dist/bbs
9 \- z: k, `  g$ ?5 ]  x6 ^" S0 Nanyname.domain.com /usr/local/www/data-dist/anyname* ]$ N  A3 Y7 s: p; N

( T, c* `$ p7 n5 g4 L6 c! `- y以上部分都是:” 域名+空格+绝对路径” 的形式。" o: K, ^3 y6 J& `- u' N

+ S% z: l* S) m2 E  |4 |9 L最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:. g& y4 J9 ?- w! r
domain , bbs , anyname 等等,理论上可以无限。; f' ?% u# ~% S" X' p- L4 E
. w8 c, }8 y  ?5 C
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以; d& u& d; R: V% g
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。$ d; V+ F4 O" L: m! a8 K$ r
5 o  v* b0 V' J4 R
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
% ~- h4 s" H* m8 h6 R9 `第二步:打配置文件尾部加上
, s- T  a5 F1 O/ z  b$ D5 f; u+ xRewriteEngine on
+ |6 D% H8 I; E$ k  q: s) g  Z6 lRewriteMap lowercase int:tolower7 m2 g4 r% Z( Z  Z* y) ]- @
#定义映像文件2 m( _4 \4 S# U( b  F
RewriteMap vhost txt:/apache/vhost/vhost.map% Y: u: U, `" K# q) V6 e) Z; j
#处理变名  f. s, @: b; X4 M9 O* K
RewriteCond %{REQUEST_URI} !^/icons/
6 a) ]* n& {& d$ c; ~. jRewriteCond %{REQUEST_URI} !^/cgi-bin/
# Z# d( l2 u" J" mRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$$ t# M  l* G( I5 I9 U& {! b
这里做基于文件的重新映射  L; y2 W# D, j
RewriteCond ${vhost:%1} ^(/.*)$2 P2 I1 A  s# \0 [
RewriteRule ^/(.*)$ %1/$1+ F& x/ U; W- q- ~3 \3 B8 |' T  [
RewriteCond %{REQUEST_URI} ^/cgi-bin/) c3 g, L: v/ o- c' c% N
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" s% k( k8 _6 \7 `
RewriteCond ${vhost:%1} ^(/.*)$' [" I1 U# u  q; R! P2 H7 Y. W
RewriteRule ^/(.*)$ %1/cgi-bin/$1" V4 h0 I4 t, V, L( ?
9 e( L: e3 R9 J; q' b# Z9 S
注意:vhost.map文件是域名和空间映像的文件,格式如下: & f' x) }" y# K* j4 t
www.abc.com /vhostusr/www.abc.com
4 c0 ?6 M1 g5 |: n9 D9 iwww.xyz.com /vhostuser/www.xyz.com
5 |9 i; m: ?8 H3 ^: awww.cccbbbb.net /vhostuser/www.ccbbbb.net
) h" s! [3 ?3 @6 Z) I.
: V0 |) J9 _2 Q+ ]0 @' A.
0 F3 U$ H" x4 K- z1 w- l, C/ B.3 J/ `8 ^% l3 ~
.+ I+ H" x% b7 @8 |: J
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
; [, E9 U- c0 q* i) |9 ~第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~9 M% f) U  J8 e! a' y
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~; \: O, G# M, i; t5 X
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
) E/ E) F4 C  N! W& `2 N==============================================
8 |  N8 ?0 w$ i$ d方法二、! a  h2 j% ^4 K' H$ a; N

1 u1 |( H* a9 \( A+ X
) r- ^8 I! l. P8 Crewriteengine on0 |/ `' i& \- X& [5 V' F, s/ s
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$8 ~) n/ U( b6 L
rewriterule ^(.+) %{HTTP_HOST}$1 [C]# i& L6 K1 c8 Z8 h  X
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
- h6 n) ?& _7 D, t其他配置文件$ ~3 D$ ]+ N8 y: b
# y! F% W  O# V7 R1 O
接着在DNS中开设一个泛解析到对应的IP地址。$ P/ d' q' @4 B8 L) }1 u9 y& w
就可以实现下面的方案。7 O. h2 w$ t* w, d
0 m3 a. ^: b: M4 L8 ]5 ^, B
域名:domain.com
; p4 Q% a. z: C# g绝对路径:/home/domain.com/
. F8 l1 T8 ^4 R. y- Cwww.domain.com 自动解析到 /home/domain.com/www/( U* y7 x' b: g1 ~
abc.domain.com 自动解析到 /home/domain.com/abc/# `+ B4 Q+ x& G" G: K7 G" `
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
% ^4 S' V# {% q直接建立子域名名称的文件夹即可使用。不需重启apache。

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