标题:
独立主机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' C
RewriteEngine 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, y
RewriteRule ^/(.*)$ %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/bbs
4 ^) 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 N
domain , bbs , anyname 等等,理论上可以无限。
m2 U8 F7 s6 C2 e+ L
7 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 l
RewriteEngine on
9 g2 H+ p( v" X
RewriteMap 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" f
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
0 P( P! C T8 v
RewriteCond ${vhost:%1} ^(/.*)$
H& S% ]' o5 V, L! J7 L2 z: M5 ^9 K+ a
RewriteRule ^/(.*)$ %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.com
8 k4 T( z) a3 x$ ~$ b" |& d( _
www.xyz.com
/vhostuser/www.xyz.com
2 W( Y6 y% `1 x# c3 F
www.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! T
rewriteengine on
0 i. V2 D0 o4 ^7 z+ s3 l& Y
rewritecond %{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.com
1 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 i
abc.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