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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
0 V# ^0 s: ~$ ^" ~1 z8 r+ Y+ z; n1 ]
RewriteEngine on
! F% E  S5 x( Y, J. x4 ^RewriteMap lowercase int:tolower! ?2 @5 k; l$ K8 L% E- n8 \2 ^
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
, m- q- ^" P$ M# |% W1 DRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
+ U3 w/ B* q& o1 g+ B7 \RewriteCond ${vhost:%1} ^(/.*)$% q& r/ P! j/ `1 t* a
RewriteRule ^/(.*)$ %1/$1# L8 C9 x. b2 p# h, A$ L; E. Z4 ~( l+ k

7 S$ N8 T0 V) Y* R) Y9 r3 k- z, s( d2 V: G8 J
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
3 g, M) c: _; ^0 c, e+ U; P然后,在这个所在路径的目录下创建一个文件: vhost.map
+ I. L) g  F3 B8 `; g内容为:6 g5 {9 O7 D$ `+ I* X

0 y% d, l, y- P) [) \www.domain.com /usr/local/www/data-dist/domain2 j6 ~- ~& ]. {; e! U
bbs.domain.com /usr/local/www/data-dist/bbs9 `6 r* t; c! G: {6 p, ~7 O
anyname.domain.com /usr/local/www/data-dist/anyname* K" M& u. N! x+ }: J' M7 \5 k. _
! u+ X: m# x) m4 U6 i. y
以上部分都是:” 域名+空格+绝对路径” 的形式。
4 e3 y+ S1 t9 V' m8 @5 K9 r  i  }! r+ k, i7 j% i( a9 u3 ?
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
0 p6 O: ~' K+ M' [7 W- W0 A, wdomain , bbs , anyname 等等,理论上可以无限。, C% e8 F4 I" k* c

0 J* M8 b. b/ g% w$ N这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
7 }+ w; d7 q. V/ w: e随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。( M: t4 y+ K) a. a7 ]2 O2 x/ I

  p4 N5 r4 _7 F# V第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。- B; r5 u% l4 j1 W( M
第二步:打配置文件尾部加上" @% \; Y' K# U! g- d6 {
RewriteEngine on
9 S! B1 C7 k0 w- C$ YRewriteMap lowercase int:tolower
4 D7 P6 f" z" V2 W4 E4 O#定义映像文件
; D) c- A5 _7 t6 }$ d8 t( v; xRewriteMap vhost txt:/apache/vhost/vhost.map
2 h& R- l; R5 v5 L1 j/ P#处理变名
3 g, X9 w: R2 F- r* w( ?$ ERewriteCond %{REQUEST_URI} !^/icons/
* l( l$ g* ^, ^2 ORewriteCond %{REQUEST_URI} !^/cgi-bin/$ k2 o4 B2 `! t  O) @/ H
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$4 }+ A+ `. @: q; Q
这里做基于文件的重新映射
# A" y; a. o, G4 o* M3 PRewriteCond ${vhost:%1} ^(/.*)$
0 n0 q3 v9 [5 yRewriteRule ^/(.*)$ %1/$1
+ [2 {5 ?8 X8 }# gRewriteCond %{REQUEST_URI} ^/cgi-bin/' Y% {$ Y( w/ D3 d. a: z/ i& Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$# z! @, E) J# [- q! n5 N1 u
RewriteCond ${vhost:%1} ^(/.*)$0 m7 m$ x& e* c/ X: ^; \) j
RewriteRule ^/(.*)$ %1/cgi-bin/$1
, D7 F# ~& \  q" X) ?( `
: L. J1 R5 i4 x( t注意:vhost.map文件是域名和空间映像的文件,格式如下: 1 y0 ~4 P8 ?* X  S# y
www.abc.com /vhostusr/www.abc.com. ]8 f4 i. c6 o$ T9 V
www.xyz.com /vhostuser/www.xyz.com
7 z$ J% V# j; a# ]* I6 swww.cccbbbb.net /vhostuser/www.ccbbbb.net: b- Q; _, i) j, E- F9 E3 P) \/ k/ J/ R
.& O: X0 y( u( ?
." E* y, e! \. v1 ]* s8 l+ M
.# `" E; ]% p  n3 g8 ]
.4 v0 a: c9 ]: }. T4 l
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)7 e5 N" R, F* v" D% M; F( ?
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~# R3 b& g& D- H8 ~- a9 a0 G" X
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
) H) R/ d: k* A, x9 @7 y: S注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
' M& v3 m; P  C) @' x==============================================5 H4 J2 l4 {8 T7 R
方法二、* J. J* u# ^- i# {
% V5 {4 L" B* @  Y2 o" j

: Q$ |& {* k( ^2 d7 zrewriteengine on
; O9 |% X/ y' R) C5 Erewritecond %{HTTP_HOST} [^.]+\.域名\.com$
7 i  A. ~4 G* o* ^5 W! `rewriterule ^(.+) %{HTTP_HOST}$1 [C]
% Q2 T# c3 C- L; A7 C! h" G0 Qrewriterule ([^.]+)\.域名\.com(.*) /$1$2& N. m( H+ [% A- D
其他配置文件: ~5 i2 N4 Y6 P8 ^

, R( a* C) l+ T" T7 e接着在DNS中开设一个泛解析到对应的IP地址。
; B  A2 Q3 R3 m2 {6 j1 C就可以实现下面的方案。6 G9 U2 X; j! V( ~( w) \& E6 @
! q" J% _1 S% t
域名:domain.com
/ D% N( J' s5 c9 m绝对路径:/home/domain.com/
* u2 U( w6 |- p0 w8 W7 p6 b0 C% S* D( Vwww.domain.com 自动解析到 /home/domain.com/www/
2 A% Z! \, C1 ?+ y1 H7 e- yabc.domain.com 自动解析到 /home/domain.com/abc// d/ z- S! h0 m" o; [/ W% [
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹+ k# a' J9 c% Y2 n: G- O  r
直接建立子域名名称的文件夹即可使用。不需重启apache。

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