Board logo

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

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

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:# v* Q: S: w' {7 g* \, i

! E& s% k6 f/ u0 L- J! eRewriteEngine on
& d% E/ j. L. ^8 |RewriteMap lowercase int:tolower" c/ s, k% U2 o
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map! Y4 F' _: L3 d$ `) v
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* Y/ \% m, c  ?6 Z  {, XRewriteCond ${vhost:%1} ^(/.*)$; J: Z0 n4 f7 k# }* f) S' b
RewriteRule ^/(.*)$ %1/$1
! }1 s; D5 D5 I9 x( b
) G# V( R, |. k  V) x  d8 I  [
# }% c$ X6 B" g" @+ ]3 t. a  W7 W7 ^2 U其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。+ o9 \( p. o8 H8 ^4 W1 j( I/ h
然后,在这个所在路径的目录下创建一个文件: vhost.map
% D4 F7 n" p$ t+ c( F内容为:
2 r7 Z$ t2 U: [9 l) N8 H; K' l5 w# e9 V# J9 Q. U' m8 S7 Y
www.domain.com /usr/local/www/data-dist/domain* h+ r! [/ g. S8 K0 g' ^
bbs.domain.com /usr/local/www/data-dist/bbs1 d8 t/ |, r5 F8 g; `! B
anyname.domain.com /usr/local/www/data-dist/anyname2 T' l4 G3 l8 \& j" x% Y! G& D
/ B7 {! r9 u9 {* t3 c3 x
以上部分都是:” 域名+空格+绝对路径” 的形式。
- J6 D# T1 e" i; J; Y
; u5 [% b: w$ }6 g, _最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:" u& D' g# F0 V4 n; \
domain , bbs , anyname 等等,理论上可以无限。% t: h3 s3 E2 H* H+ X: \

/ }8 Q& P/ _( e3 w这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以0 e7 A% U2 }, F- C
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。- [  l  u6 S( E9 k2 \' [4 L

* ]' a  ^+ `" J6 K! [! U3 E' f9 B第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。' x2 k0 o, Y( w9 `. t1 K3 p- ?- L' M3 x
第二步:打配置文件尾部加上
, q! d$ ?' Q( o; l. L+ r3 eRewriteEngine on. g6 W' n5 F& \$ P- f& f$ S
RewriteMap lowercase int:tolower# C; {) h* b: k( Y7 D
#定义映像文件- g$ P7 e- g9 J" e6 t
RewriteMap vhost txt:/apache/vhost/vhost.map
0 P# e+ I! ~9 E& H& b  q3 n% H#处理变名; K/ b) f* ?8 u, B. S3 o
RewriteCond %{REQUEST_URI} !^/icons/
1 C/ T7 h, q) QRewriteCond %{REQUEST_URI} !^/cgi-bin/+ ~; j3 z. z) \2 L: w& F8 W" v
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$( O* T) e0 i2 m6 w+ D) f
这里做基于文件的重新映射
9 ^; ]3 v  v# {RewriteCond ${vhost:%1} ^(/.*)$
% j/ M7 n! ~$ l8 m; DRewriteRule ^/(.*)$ %1/$1! |1 `' y( z6 a! i
RewriteCond %{REQUEST_URI} ^/cgi-bin// W, [% k- M: [! ]
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$* E. m. x. a- j' u
RewriteCond ${vhost:%1} ^(/.*)$
% |% ]4 h  g$ {- oRewriteRule ^/(.*)$ %1/cgi-bin/$17 l3 z. e& Z. t4 J2 u
5 z4 N% I" O* m
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
; G/ h" b5 ^9 Q$ z9 _; f6 z2 z5 }www.abc.com /vhostusr/www.abc.com
5 ^  a2 ^% m; w8 q! p# n# ?2 [www.xyz.com /vhostuser/www.xyz.com4 `4 B' T  C( n
www.cccbbbb.net /vhostuser/www.ccbbbb.net+ k9 _9 |0 @6 e' v) f
.) ?2 t$ I  ]& U$ d
.
0 a& J5 h0 i+ O! F$ M, Z0 ^$ j.
8 D) ]  G" q  X& d# h0 E& U.
$ j% Z8 h/ ?) V6 ]0 F6 w! x(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)( d1 c0 F3 Z! G
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~& G) s, b; p; U+ G
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~# T3 ~9 E( O1 q
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~  b8 e% w% S7 `3 O6 |8 o$ Q
==============================================1 l, X0 q8 V) K* _
方法二、6 [$ I0 J# s- D1 `
6 Q6 ^! }4 i0 l0 m# \1 ?7 [9 N. Q
/ a; s; b% p7 B
rewriteengine on* Q& s; `4 o8 t0 L% G4 r1 `
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
; ~3 @% w+ S8 k% Q! B4 ^; C& {rewriterule ^(.+) %{HTTP_HOST}$1 [C]# z$ O1 [' ^3 y5 S. V; H+ Y4 G
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
: T1 H3 u7 t3 I/ d. W其他配置文件& k" f8 t" o+ b/ l+ O/ f4 s, A; B

5 j& q7 l; o' Q1 p8 a0 \- z接着在DNS中开设一个泛解析到对应的IP地址。
; r% _' Z% F0 I0 P. J5 X" Q就可以实现下面的方案。( F) {- [5 a. I/ z& d

3 v* a2 l( J6 h7 w; W, l) n4 ~域名:domain.com3 b. G( r: J4 g5 J3 c& A; Q/ Z0 C
绝对路径:/home/domain.com/
1 A+ r, ~# V/ u( f4 Z4 H2 ~& t( ]' uwww.domain.com 自动解析到 /home/domain.com/www/& V3 P% i8 r# Z3 B/ D( b
abc.domain.com 自动解析到 /home/domain.com/abc/
7 G7 t5 v& W7 k等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹0 |. E% a( I3 i, D5 B# S5 r
直接建立子域名名称的文件夹即可使用。不需重启apache。




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