Board logo

标题: 独立主机Apache 配置二级域名 [打印本页]

作者: admin    时间: 2009-4-26 19:44     标题: 独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:. B, D$ D+ O( M! ]1 m! ]

3 I8 f/ S' C' CRewriteEngine on- M4 {& f4 Y( ^: M+ P0 O
RewriteMap lowercase int:tolower
# P2 S1 a+ a/ ~/ O8 Z9 v9 t0 `RewriteMap vhost txt:/usr/local/etc/apache/vhost.map/ z; i. L3 J; D1 }5 I; i- n: c
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" N6 K5 A; c; L: Z5 v1 u7 M0 _
RewriteCond ${vhost:%1} ^(/.*)$
4 z" T" m: c* u7 L0 c, Y% u' u* W, yRewriteRule ^/(.*)$ %1/$1% ]) @. b6 f3 R
0 z4 D; Q5 n# |% `* s0 G
; S2 v% S4 ]2 `' q; d. m) f4 ~' o0 }
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
% v) U, |+ s! s) P( d; I/ i然后,在这个所在路径的目录下创建一个文件: vhost.map
: D: s' d0 i/ z( I/ S8 S8 N% z* t内容为:
/ s( P6 a( c2 w8 m! `0 D- d5 ^( `: L( U7 m) A# Z& ?& ~+ ^0 T% Y5 Z
www.domain.com /usr/local/www/data-dist/domain, ~5 [. I1 m* x9 v( r
bbs.domain.com /usr/local/www/data-dist/bbs4 ^) X: z' q/ C% R2 A8 ^0 E* k& o
anyname.domain.com /usr/local/www/data-dist/anyname' u6 f* y8 t, B* _2 q8 E. n

* V; C) O3 \6 o- G8 W& h以上部分都是:” 域名+空格+绝对路径” 的形式。3 s$ [) h% N0 \6 P

! E1 T5 w* ^( s+ g6 e& f9 s- i最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
9 W3 _$ W3 [; g6 b0 Ndomain , bbs , anyname 等等,理论上可以无限。
  m2 U8 F7 s6 C2 e+ L7 c; n  N4 A  K4 l4 ?
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
  n+ }6 c& r. q) F: W6 j5 f1 G随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。0 O' ?  t4 {( @4 G) }4 W& A! c

) W2 z- E6 U! [* U第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。" s0 @% d$ S0 N
第二步:打配置文件尾部加上
3 Q7 q- s7 N2 lRewriteEngine on
9 g2 H+ p( v" XRewriteMap lowercase int:tolower
" v, d- T' M4 U& z) W0 Z#定义映像文件' `( t1 N* `& O% R. |# y
RewriteMap vhost txt:/apache/vhost/vhost.map; I, O$ h2 `" l- U9 k
#处理变名8 e# D- @, W2 o
RewriteCond %{REQUEST_URI} !^/icons/
# ]7 b5 u1 R2 p; [RewriteCond %{REQUEST_URI} !^/cgi-bin/- n7 @3 H* j& F+ b( [4 E# d
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" y" `, e" o+ y- k$ ]. t+ f# t( C
这里做基于文件的重新映射! N/ ?* T' X: T- R  K- c9 P! X; \2 L
RewriteCond ${vhost:%1} ^(/.*)$: o1 C0 R- t5 X
RewriteRule ^/(.*)$ %1/$1- B3 }+ p% d6 s+ b2 _
RewriteCond %{REQUEST_URI} ^/cgi-bin/
+ Y) T) B  g& I2 T4 r4 l" fRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
0 P( P! C  T8 vRewriteCond ${vhost:%1} ^(/.*)$
  H& S% ]' o5 V, L! J7 L2 z: M5 ^9 K+ aRewriteRule ^/(.*)$ %1/cgi-bin/$1
2 j+ H: t2 ]; n; z6 X% N+ D; ?% o7 c6 r/ H3 }+ `% r
注意:vhost.map文件是域名和空间映像的文件,格式如下: / e6 p7 G9 D) d) D
www.abc.com /vhostusr/www.abc.com8 k4 T( z) a3 x$ ~$ b" |& d( _
www.xyz.com /vhostuser/www.xyz.com
2 W( Y6 y% `1 x# c3 Fwww.cccbbbb.net /vhostuser/www.ccbbbb.net
7 A7 F$ g" S/ ?. P& m.
! W+ C( p: {6 C" f+ x# z9 D.! S2 _/ }" A( m+ l
.# K6 A: }5 D6 F0 s. \
.: y$ t3 T7 X! [& H9 k  {
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
$ x% b' o/ Z) H第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~- b* @5 K! [' U2 P" ]1 F0 _
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
' z9 s# {0 i7 I5 q1 B* P注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~# ^7 w  g$ H% q2 W5 ^5 @1 M0 Q# ~" O
==============================================
) b# v0 _8 q$ |. |& S( Z方法二、
  D, S9 i) f$ u. f4 z
0 J: S* A2 ?* F7 c% G4 _
, k4 l4 c5 ~* W: q! Trewriteengine on
0 i. V2 D0 o4 ^7 z+ s3 l& Yrewritecond %{HTTP_HOST} [^.]+\.域名\.com$
: A3 Y; }" S) f% b% L' ]. X% ^rewriterule ^(.+) %{HTTP_HOST}$1 [C]$ }5 J& I: O" ?8 C4 J
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
* h. U( t$ `5 I4 d; r其他配置文件
$ }, G% A9 ?, E6 F2 F( V# M% C) G" y+ B& s0 A1 ?0 x( Z+ U7 X3 |
接着在DNS中开设一个泛解析到对应的IP地址。
6 S4 S. a0 O" t6 x: k就可以实现下面的方案。3 r2 [6 @, H9 J9 U

% F) I& c- G. ?5 J1 D域名:domain.com1 I! W+ j8 W* s. P5 p! z
绝对路径:/home/domain.com/- |6 D5 Q- z6 e! g6 e# \
www.domain.com 自动解析到 /home/domain.com/www/
! `+ `# R1 x* N& t1 O, m6 }8 iabc.domain.com 自动解析到 /home/domain.com/abc/- j1 j% X  E! n# O: i$ s
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹. F# \+ l. l3 ]* }( }" y7 K5 c
直接建立子域名名称的文件夹即可使用。不需重启apache。




欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2