标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
" x4 V2 a; A. c# C4 ]3 L4 ]- J
/ C' ]; A, l1 H$ n- G
RewriteEngine on
! s- n- l) g/ d+ M3 L9 h/ z
RewriteMap lowercase int:tolower
% J* s9 t g' W8 b4 c
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
0 f5 p) x- |( [; y, D
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
, Z6 J: s( b5 q4 q
RewriteCond ${vhost:%1} ^(/.*)$
) I$ N& _+ Z3 @" _
RewriteRule ^/(.*)$ %1/$1
' X" \. ^- S, E* U7 s) }
a7 Y2 v. D8 v8 b- m! b
+ v0 t# n% \* J; P, l1 E
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
* @/ V9 ^' K3 c4 F' u. D! Z/ m
然后,在这个所在路径的目录下创建一个文件: vhost.map
8 t X( c/ n( H" W X
内容为:
$ E" ?+ |3 {" [- f* U
9 S" B1 n9 ?- z# n
www.domain.com
/usr/local/www/data-dist/domain
; w& d. ?3 z, s+ U
bbs.domain.com /usr/local/www/data-dist/bbs
( S. F1 [2 X, s2 {$ t/ g. O( ?- k
anyname.domain.com /usr/local/www/data-dist/anyname
2 `9 }2 S' N1 s0 u9 F
1 p' j) h% E! w6 j( x. {7 R
以上部分都是:” 域名+空格+绝对路径” 的形式。
/ n% P% S. u) W! n) O2 S q
; I3 H. S' ?' [! b3 Z7 ]
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
9 J7 j2 d: ]) n1 G
domain , bbs , anyname 等等,理论上可以无限。
0 ]; |8 ]4 w" A: J: h" E
4 U6 i8 c. M6 G/ O# d" l1 P
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
! C$ P1 T) y/ e8 W) p
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
/ X7 M! g8 m, k7 R1 H3 S' w) H* A5 T
8 p0 j0 e/ v b
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
& J s- t% @% ?5 t" _6 O( R
第二步:打配置文件尾部加上
+ \+ e8 v% D; X0 P1 c* q! s
RewriteEngine on
, X2 ]4 e" d5 `
RewriteMap lowercase int:tolower
( s6 f$ Y0 d4 N* Z. X r
#定义映像文件
* p- l2 r0 Q5 Z% W `7 q
RewriteMap vhost txt:/apache/vhost/vhost.map
' l8 A8 [& x& X8 v# F
#处理变名
6 m! U- I/ Z, T
RewriteCond %{REQUEST_URI} !^/icons/
0 J9 {9 w" i: Y" X
RewriteCond %{REQUEST_URI} !^/cgi-bin/
1 V* b& z" u1 a3 _3 M
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
& v8 Y% g* X$ b- B( N
这里做基于文件的重新映射
/ R9 O9 z6 ]. T/ n
RewriteCond ${vhost:%1} ^(/.*)$
& C# O7 [* }9 p6 H' A
RewriteRule ^/(.*)$ %1/$1
' s+ R1 M+ R$ e5 t% @
RewriteCond %{REQUEST_URI} ^/cgi-bin/
' ?1 X4 D+ |( c8 }7 V# o" S0 Q
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
1 s! j- o5 g# q1 v
RewriteCond ${vhost:%1} ^(/.*)$
$ I; g8 }: B; ~& d% I7 i% Q
RewriteRule ^/(.*)$ %1/cgi-bin/$1
5 P! u9 i5 W2 p
7 z3 d- j) D% j# S% c0 e
注意:vhost.map文件是域名和空间映像的文件,格式如下:
! D O; o: p( j' ?
www.abc.com
/vhostusr/www.abc.com
4 K' \* m- _ O
www.xyz.com
/vhostuser/www.xyz.com
& E1 g4 p. o0 ~, L
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
) k( b% J! \- w5 M5 J. g& }1 h
.
' A( N6 n' Z6 p9 H
.
" u# { O; x) b0 v
.
9 D$ C& J [8 E1 F0 E1 w
.
- b' h$ ?! G+ V4 C. k; o8 F. M
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
( I' H( `# @6 H' S7 c# G; y
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
) f+ A) J' u5 q0 X2 \1 F: |- I0 V
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
3 g' i9 r' {* J2 G+ Z
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
8 e! C" U' G" g' m" Y; L, S
==============================================
1 k* ?, B' A! s; a: ^# d1 s9 v
方法二、
9 C. C. u1 J m7 P/ d; t2 H' D
2 @. F8 S7 `7 n5 F+ d
/ I/ T1 \9 X7 R2 [# Y1 q H
rewriteengine on
' ]' b" B- X- m/ J u& X* h
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
8 K& G: q0 \+ C7 ]) B: W- c7 q* b
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
8 s! c) ]/ B+ J
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
% W/ M1 P4 i3 p) z+ E0 m" W+ ^
其他配置文件
+ @2 o4 I. B+ N& z, O
" K6 U9 ]" T3 }- r5 o T& U
接着在DNS中开设一个泛解析到对应的IP地址。
: y& O' M/ k7 O/ F. B6 @) t
就可以实现下面的方案。
6 @# h) w! `; o* U) s
% E/ V0 c2 C4 G% C3 N& F6 d+ k
域名:domain.com
2 u/ p3 U2 u( f
绝对路径:/home/domain.com/
' r* I- ]; C; Q( b
www.domain.com
自动解析到 /home/domain.com/www/
9 d5 i. z! \0 [; \' l% X! M; Y& G
abc.domain.com 自动解析到 /home/domain.com/abc/
7 ^; a, t8 w* ^8 E
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
+ b6 J* u: t8 h$ m) K, K5 V" n) x
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2