Board logo

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

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

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
: U$ ~! f- k$ V$ w8 x  S0 N
3 j$ H! f+ h6 URewriteEngine on
5 M/ `; R# N8 s. ]RewriteMap lowercase int:tolower6 N' g8 q9 k( e6 k! w( a
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
* b$ G2 J- M0 J# v' [RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$9 ^1 N: K, X  K& R: A3 f& n
RewriteCond ${vhost:%1} ^(/.*)$) h' G2 w9 D0 B: |2 d
RewriteRule ^/(.*)$ %1/$13 b, b, r) j8 p* O+ J
! M7 U) Q$ P: v' V( _6 K# [

8 i% \  h: s2 `其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
# `& D! O0 P7 N: e2 W3 E然后,在这个所在路径的目录下创建一个文件: vhost.map, z( k0 _6 k) b/ y; I7 B
内容为:
6 A& j8 J- t, N5 ]
7 S( E: R( Z: q, l- ]www.domain.com /usr/local/www/data-dist/domain: P# `3 O1 |, {. ^: b: h2 m
bbs.domain.com /usr/local/www/data-dist/bbs
" b7 }. V6 k& wanyname.domain.com /usr/local/www/data-dist/anyname
* Q6 I0 P8 C, z5 z/ d
5 f) E: E- E1 D( v0 N4 h8 q以上部分都是:” 域名+空格+绝对路径” 的形式。3 d4 u4 R: p# ~7 q( a! O
0 D; B; H2 t0 R& S; O
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:) O4 d( V6 M# u9 e0 C5 ^4 c
domain , bbs , anyname 等等,理论上可以无限。2 {2 w) Y8 \" v3 N/ Q
5 [" a' }9 x) a, A2 r- ~
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
* E& \6 p2 X$ B随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。/ Z# o' P8 r* T

5 y  I2 Z9 F3 r. `5 I$ a( c# \! ]第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
0 }; F* ]1 t& u6 x4 \: H" m, Z9 J第二步:打配置文件尾部加上
! Z$ m  [0 ]/ L; G% q4 N; y! FRewriteEngine on
# h: b  x0 s8 V9 C- \- l+ i8 hRewriteMap lowercase int:tolower2 {. f% [3 {% \  n/ h4 W7 z3 ~
#定义映像文件! m. J2 Y7 a3 X6 S4 u, w4 @
RewriteMap vhost txt:/apache/vhost/vhost.map
" i) J# L' ?* O4 A  H# h1 K#处理变名1 u- M8 k$ {9 E2 A; ~  U# B* y0 S9 R
RewriteCond %{REQUEST_URI} !^/icons/8 }/ G, ^3 w( E, T5 a8 d/ E$ t
RewriteCond %{REQUEST_URI} !^/cgi-bin/
9 [5 \3 ?5 c  _. l& rRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
: `" M1 v  V' P$ X) N7 V4 S  O这里做基于文件的重新映射
2 g# q7 n! n8 e5 j" p2 U- p, VRewriteCond ${vhost:%1} ^(/.*)$8 ?; w4 `, Q. t6 N
RewriteRule ^/(.*)$ %1/$1
4 |% Z0 L  i4 i8 _6 g* URewriteCond %{REQUEST_URI} ^/cgi-bin/
7 D7 ?' |% j" ~6 J: kRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* d& r3 j$ Y+ q/ v* p$ WRewriteCond ${vhost:%1} ^(/.*)$+ u) L6 k) Y4 x7 m
RewriteRule ^/(.*)$ %1/cgi-bin/$1
0 }, g* d# |0 U7 {7 u5 p
, u5 l( y- S: K: U& V* @0 h8 C0 S注意:vhost.map文件是域名和空间映像的文件,格式如下: : O, ~+ E  `1 s" O+ D8 M
www.abc.com /vhostusr/www.abc.com
* e7 W) G" W) Q- swww.xyz.com /vhostuser/www.xyz.com
6 ~$ @7 g' P6 x' twww.cccbbbb.net /vhostuser/www.ccbbbb.net4 z5 O* E  W! y$ D; A
.
& n" G8 F; j  S3 b3 X.
; k9 {1 f9 ?9 T2 y.# \4 {* y: W  b3 r  D) R
.( h- \5 s1 Q/ u  I) O4 P: a1 J
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
+ Q3 T. H3 `1 r$ I9 V# ?第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
( u) P8 ?! a' P# L4 I& p6 F其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
; R7 v1 K( |0 n* l% w- ?3 c注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" {8 D" H! o# N==============================================
$ X, Z  N: L( z8 {0 P* L: y方法二、
" y7 Z. M( Z* g1 @% g- t$ C
: \( l$ x& x' Y5 c0 [2 j; Z. e. x' K/ G$ @; F4 Y* E
rewriteengine on, z$ E7 a, I1 P( a# L% e+ w
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$& F, l" Z  c7 |5 C' s& d- ~" w- t
rewriterule ^(.+) %{HTTP_HOST}$1 [C]' P: N8 ^) R, T6 G
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
; h* Q% K7 W8 L6 n4 q! @$ Z1 e其他配置文件1 I0 U  S. \- E: |* ?% b9 N

8 A6 K4 l: T# @1 ?$ W9 ]' W接着在DNS中开设一个泛解析到对应的IP地址。- B& G, [" O- F3 _, a+ i
就可以实现下面的方案。
% `8 y+ t% H3 \5 C, Y# y7 b5 w6 A  O, U: W$ u: M' n
域名:domain.com* b  Z6 [3 G% n4 @7 z
绝对路径:/home/domain.com/
- b6 C! a4 E4 P' j( _' S& Mwww.domain.com 自动解析到 /home/domain.com/www/5 p7 @- F2 H3 C, `: L
abc.domain.com 自动解析到 /home/domain.com/abc/0 }! e$ ]0 c' j- y
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹0 g. m/ q( s0 [3 h
直接建立子域名名称的文件夹即可使用。不需重启apache。




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