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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:# \7 A$ N( U% n/ {/ Q
/ O" B, g( q' k  O* v. B! C
RewriteEngine on
' [* V3 t/ A4 C6 |. [+ i- v* w  HRewriteMap lowercase int:tolower2 F; `5 S+ l8 W
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
5 ~" H; w4 g! f5 c0 hRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 K3 H& k2 n9 t9 `! Z9 z6 h. {
RewriteCond ${vhost:%1} ^(/.*)$+ p4 C) ^% V* Z% Z
RewriteRule ^/(.*)$ %1/$1* ~) N2 e' r) B0 T

: J; Z' S! _& U: s1 m* ?
- B+ Z" J& R" _. D! [5 \- @( ^5 @+ f7 R其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。3 J0 x+ ^# n' a7 M1 W# P; r
然后,在这个所在路径的目录下创建一个文件: vhost.map
3 h7 R  e  H9 P" H+ f# |内容为:
4 H2 E6 N* J7 P+ C0 [4 J0 e- g# ?! W
/ ~3 |' O4 m* B2 d7 B8 owww.domain.com /usr/local/www/data-dist/domain8 {/ u- g1 u+ Q) u; s
bbs.domain.com /usr/local/www/data-dist/bbs
6 [+ {) f  j; T! danyname.domain.com /usr/local/www/data-dist/anyname, d4 v' D" `1 d: u* J- q

) |3 ~  }  ~6 _! N) g: v以上部分都是:” 域名+空格+绝对路径” 的形式。
# C# `/ H" [. v, R" q9 B8 r
3 S/ g+ t; h( E8 }5 _( ]最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:, G( I3 W4 ^' i' S0 _
domain , bbs , anyname 等等,理论上可以无限。
" z- k0 R& m, t. l( |) \% q
6 I9 M" D. e; u1 S. \这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
) ?' F9 z9 o6 w1 ~随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
$ F: E; Q- t8 X
0 h. Z1 U+ V: I! f第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
& K- z6 i* j9 Q" g第二步:打配置文件尾部加上5 b& O6 D5 d7 g% u* A- X
RewriteEngine on
7 [7 o8 U( ~5 O/ I: bRewriteMap lowercase int:tolower/ g! d, }- n! n4 }/ g  Y9 m- U) x
#定义映像文件  E, L: [( o' |# M8 `
RewriteMap vhost txt:/apache/vhost/vhost.map! A9 ^# F0 v+ \/ q
#处理变名/ k1 @4 a2 Q: ^; I
RewriteCond %{REQUEST_URI} !^/icons/, u$ x1 w1 E0 s+ F$ {# Z
RewriteCond %{REQUEST_URI} !^/cgi-bin/
! g# f5 E5 C; G4 B- xRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
- T8 n& M: r2 @: w, p7 i& [2 g* Y2 c这里做基于文件的重新映射. i& A+ y( I: m/ j( {) T
RewriteCond ${vhost:%1} ^(/.*)$
0 Y; Y% o' L5 b4 pRewriteRule ^/(.*)$ %1/$1
+ N/ t" `& n) }5 }1 ^RewriteCond %{REQUEST_URI} ^/cgi-bin/  _! D8 L2 ~. q, F/ ~; _) D6 }
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% i4 F2 T- b8 N1 @4 a0 vRewriteCond ${vhost:%1} ^(/.*)$% j! a4 C# E* o7 I" ^/ P3 X& ~
RewriteRule ^/(.*)$ %1/cgi-bin/$10 w: c: H& @, n7 ^

/ F% B' {. ]9 ^+ c注意:vhost.map文件是域名和空间映像的文件,格式如下: . n" G$ v6 P: |+ V0 k, O2 J
www.abc.com /vhostusr/www.abc.com4 ^. n9 M1 M+ T' o
www.xyz.com /vhostuser/www.xyz.com' U3 |" |% H0 y5 ]
www.cccbbbb.net /vhostuser/www.ccbbbb.net
# l+ ~4 A  r9 e, [# ].8 @5 x7 R$ q+ J; e7 J$ N% h$ W. j) v
.4 d0 V  H$ t. P. {) s
.+ `6 }; M  e( ~1 M
.
+ A  H1 B5 F9 ?# P8 p(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
: @5 ^, O+ ?7 k9 r2 J第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
8 `( W$ i4 q: B, k: t其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
1 U1 e/ R% j; O" R: f* Z4 F注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~8 J2 ^/ T( _* p! B
==============================================" I( y, D! S! \& r
方法二、
/ n# @8 t5 c: e+ w0 s& S$ Z+ Y* ?# p$ c

. B5 s$ [) E! p" Frewriteengine on
+ ^( n1 f' w: ^, h' |rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
/ v: u8 T% G3 R9 p+ Lrewriterule ^(.+) %{HTTP_HOST}$1 [C]7 _* [3 N7 Z8 b: b! S
rewriterule ([^.]+)\.域名\.com(.*) /$1$2+ k1 `/ L9 K, v) Z8 \! r8 `
其他配置文件
3 s' A) u$ L0 B+ `: ~' W5 z! m" i5 ~8 \: Q& L  _. u3 u: [) V
接着在DNS中开设一个泛解析到对应的IP地址。
6 m* [7 I) t3 U' l就可以实现下面的方案。, Z' V% q" s" A8 k
* U# F2 k" b6 C# K+ Y6 b; k3 X
域名:domain.com
9 S' [- u  e9 N$ ]: ?: B绝对路径:/home/domain.com/
  I0 U2 x6 e& s" I% uwww.domain.com 自动解析到 /home/domain.com/www/5 d4 _6 {" b2 u5 \& {4 [
abc.domain.com 自动解析到 /home/domain.com/abc/9 {1 I4 {$ A4 b/ d1 `4 Z
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
. v0 x( D8 Y3 x: d5 G0 Z直接建立子域名名称的文件夹即可使用。不需重启apache。

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