Board logo

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

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

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
& q* W$ L# f5 A6 Z3 D# x# a+ V+ r2 M' m! N' V
RewriteEngine on4 l8 `+ I# B; O  z! ]0 q
RewriteMap lowercase int:tolower
3 k8 A$ ^0 D/ }4 v* @8 W, C' cRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
+ d: K, m: X' R+ G- W* |RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ H- m: T" y2 F: l7 j( J0 K/ ^0 dRewriteCond ${vhost:%1} ^(/.*)$
( N& S- n* Y) k+ B5 v2 zRewriteRule ^/(.*)$ %1/$15 u& r2 q( x/ ?

, e! L9 R1 b8 P$ a& N. k* T  h; }; u9 {. v
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。  R' C. X+ d! V- \. |* @6 w" H
然后,在这个所在路径的目录下创建一个文件: vhost.map' K# m3 k2 D/ j! }$ M" G+ x
内容为:
' u, V  J% X5 @/ a; q5 n0 [
$ S( F& @, s* R6 k4 g9 ~www.domain.com /usr/local/www/data-dist/domain# e+ @9 P$ g' d: ?% b# |
bbs.domain.com /usr/local/www/data-dist/bbs
  {4 w+ ?4 V+ {8 `  J/ Z: kanyname.domain.com /usr/local/www/data-dist/anyname) m- l* J3 T: \; P$ f3 k( @

- ~. {- C, K. Z* n: F以上部分都是:” 域名+空格+绝对路径” 的形式。. c" @& [% n  e1 M2 k" ?$ m! Q
% |$ R4 C2 d/ f4 t) g4 c
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
# a1 i! S5 L& }  Adomain , bbs , anyname 等等,理论上可以无限。
' q) W3 {( Q# c$ v- @& m" N! E1 B% ^" T7 k0 E; U' g4 N
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以+ c7 ?5 `, h. M; S. Q  b! n
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
. [+ X0 [  `  u8 n% z3 N
: m* s$ e2 I1 F3 g第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。/ L3 L6 P# j3 s, I/ f
第二步:打配置文件尾部加上- N4 Y3 W( X  V2 r) N: q
RewriteEngine on
( I) J. Q  O4 ~& c4 WRewriteMap lowercase int:tolower
: @+ \7 P8 R* U  a+ B/ l+ f2 |" [#定义映像文件
2 `. _/ K3 ~; B& NRewriteMap vhost txt:/apache/vhost/vhost.map
; u0 w; P& e: E6 Y' `2 k6 f+ _#处理变名+ W+ l( Q! G6 ^7 Y
RewriteCond %{REQUEST_URI} !^/icons/
$ t" p2 t. g; c  y4 g4 _& @$ nRewriteCond %{REQUEST_URI} !^/cgi-bin/
% ?& J- T+ w* O/ v- V9 H1 v/ VRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$0 {4 d5 _5 I, F- \: W
这里做基于文件的重新映射  n; ]1 W8 Q3 k# B; d3 \  P
RewriteCond ${vhost:%1} ^(/.*)$) I! V) z# W$ O
RewriteRule ^/(.*)$ %1/$1+ }& X' K% K% M
RewriteCond %{REQUEST_URI} ^/cgi-bin/) ^0 o" X7 r; z, q/ d! u
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 m3 K$ _% O( o! D5 u' zRewriteCond ${vhost:%1} ^(/.*)$
8 {8 @& v+ c# ~4 p& E6 {# pRewriteRule ^/(.*)$ %1/cgi-bin/$15 F; N0 }) P8 f' N0 Z

& m$ y) q- e% F7 p/ S, n' r注意:vhost.map文件是域名和空间映像的文件,格式如下: 8 I* N+ V( [' Q! u1 u0 i; W5 e! X
www.abc.com /vhostusr/www.abc.com
# _. d  \% Y- {7 ~& @5 S: Twww.xyz.com /vhostuser/www.xyz.com
. Q% d: y; f; |7 H( ?3 @www.cccbbbb.net /vhostuser/www.ccbbbb.net
* E& t4 p  l) \/ S  O/ f./ ?" E# ]: a# c( e) x; Y" C
.
4 ?' a3 O' k1 R6 s  }.
0 y% J4 @6 L$ U# ?.8 H7 L& s! M) |: k& ^% J/ k
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)' \9 W5 e, O" X
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~  z" @. k3 M; q( b8 \) V
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~3 O+ z! C' J( C2 H
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" A& o8 N6 {2 q: E1 s$ N==============================================+ `, f6 h, [  U2 w# s+ y4 G$ T7 X! a
方法二、7 R# V4 [5 z! T5 g. p5 N

* a4 ]" o) u& c; f/ k$ {  M2 w1 \5 y% x" E
rewriteengine on9 R/ ?; f% w+ c) }
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
  B0 w7 [4 ]1 j. drewriterule ^(.+) %{HTTP_HOST}$1 [C]5 A! j" n" \3 N3 N3 @; `7 t
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
& }6 d0 k: D  t: z& I* S其他配置文件
" S3 t4 _: {. y( N( `" Z  T7 ?" ~5 q; W5 b1 \( b4 R1 W
接着在DNS中开设一个泛解析到对应的IP地址。
, {1 j  \  Q9 q% y, r就可以实现下面的方案。
2 C# u% l' ?. B+ _0 E3 @+ z, B& N: l5 b7 E. C
域名:domain.com
" f7 h; S1 Z" a% I: e0 I0 l绝对路径:/home/domain.com/% ]! i! o1 L) ~* \# F7 [: f8 h  L7 r
www.domain.com 自动解析到 /home/domain.com/www/
, {8 b6 B$ e! V) ?; P4 ?" zabc.domain.com 自动解析到 /home/domain.com/abc/
! q6 v+ K: f0 P等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹4 b/ O0 `$ I% U: m
直接建立子域名名称的文件夹即可使用。不需重启apache。




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