获得本站免费赞助空间请点这里
返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:% n9 @: G' d9 S2 Y4 b& I. X
# k+ L/ d" E! Q5 @$ A5 i& |
RewriteEngine on0 Y: n  u( C5 o! }
RewriteMap lowercase int:tolower1 T/ i# b7 t! w- C/ m+ l
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
) U$ N) c7 _3 ^9 a: Z0 H/ _RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
  q8 T. i5 l. O# n* W" i1 o  _; ?RewriteCond ${vhost:%1} ^(/.*)$
/ u/ i! C6 d: D- S1 g% [, WRewriteRule ^/(.*)$ %1/$1
4 x1 M/ _" W" H: T8 {' \+ w2 @7 m4 s( Y6 P
0 `; @( Q4 i7 f( P- f  |( u- M
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。4 t* c" x$ v( C8 |
然后,在这个所在路径的目录下创建一个文件: vhost.map
( N- |$ ]: c0 D( y7 B9 O  f+ O5 v5 T内容为:! m# z! Y) N/ ?1 B2 [( a4 y

/ ?2 S9 i7 Z' P* T5 mwww.domain.com /usr/local/www/data-dist/domain
. S; _" R7 v. U2 k3 G) D0 I. Lbbs.domain.com /usr/local/www/data-dist/bbs9 W& q1 ^9 M6 y2 T  o, R
anyname.domain.com /usr/local/www/data-dist/anyname
6 ]8 M/ d! g% v- T! _, I% Y! e( K
以上部分都是:” 域名+空格+绝对路径” 的形式。$ V. X+ {, t8 U. p3 X; W$ x7 x

7 R' N6 W% ~. _6 F最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
, F8 l  w" v( n8 Rdomain , bbs , anyname 等等,理论上可以无限。4 Y" j5 I/ F: n  v" i5 {3 s4 h

2 x, n3 M$ S) T+ T: K这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
/ ^: p& D& S$ d# @随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。$ s; ~: ^# y  r  N) R9 r1 I  A

: n2 }& l% h9 P5 [, M2 T+ h第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
. ~  p- `" _3 K+ ~) T第二步:打配置文件尾部加上5 b2 m/ ]! Y/ P/ U% G( X
RewriteEngine on
5 l; y& T* {# Z3 G  bRewriteMap lowercase int:tolower; _8 H$ Z8 O/ n0 X8 H
#定义映像文件
2 m7 _3 ^+ T, @! ~" S1 Z- RRewriteMap vhost txt:/apache/vhost/vhost.map& I* ~+ d+ i, A6 q
#处理变名9 Z+ s; ~- f. K
RewriteCond %{REQUEST_URI} !^/icons/, b" A6 W+ f! d; }3 I
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# E9 V1 Q1 I3 r6 X" T  E. BRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
6 `" ^/ Z* k8 P) ^- D+ Y) p这里做基于文件的重新映射
/ i1 }1 \# d0 u" z9 V/ JRewriteCond ${vhost:%1} ^(/.*)$
8 l/ H7 y' v  k- E- t% IRewriteRule ^/(.*)$ %1/$1
! I7 n/ {6 q8 s% o8 c% x6 ARewriteCond %{REQUEST_URI} ^/cgi-bin/
0 |# T: N$ \0 U, BRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
2 y' F( `( }. ^4 NRewriteCond ${vhost:%1} ^(/.*)$
( w: p" m' u' U3 M  eRewriteRule ^/(.*)$ %1/cgi-bin/$1
' h% ^# ]' q) A# P3 \# g$ y
" B/ q6 S1 {0 {6 H8 j注意:vhost.map文件是域名和空间映像的文件,格式如下: ) q1 y3 [8 J" [" f9 A) ]
www.abc.com /vhostusr/www.abc.com' ?) Q' `/ v: M5 X) m% ^
www.xyz.com /vhostuser/www.xyz.com$ {9 V0 j/ v" W# ?1 `# }' N
www.cccbbbb.net /vhostuser/www.ccbbbb.net
4 M8 I& ^* O* o3 m+ x5 Z8 F.
  C% Z0 Y* e- W8 }" a! p+ U8 y.3 B$ @. J% N0 @4 ?$ g9 z
.% L5 \3 e6 _7 Q
.8 X3 B9 v; p' O' E. q, ^
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
* u" m% U6 M8 o% g, u第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
0 c& ]7 A& @# d$ _" g其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
% q6 V3 V3 ^" ?; q注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~( w6 G% X$ v  w5 y9 ~7 j( ^
==============================================
* [: _) |/ {, c/ Z9 k方法二、
, ~) f; Q" Q4 Q* s/ F, y! T: t7 d8 w9 m& z% v' }( b: \. }
& e! s9 U" h( Z. \. r2 T. y* ?
rewriteengine on+ a4 v' N& e8 k7 J* L+ p) y. X
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
# A! a/ m" I0 |: T/ D5 \! X% T: W( Mrewriterule ^(.+) %{HTTP_HOST}$1 [C]0 |: D3 c$ H# ?% Y9 S! F9 O
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
* o8 [+ [3 _: O; k' O5 a其他配置文件6 _3 u7 v; g0 s" ^

# A- n; {; d& s* r% _接着在DNS中开设一个泛解析到对应的IP地址。% V" x- D# t" G+ p( {
就可以实现下面的方案。4 @# e/ Z% |* z- J- W: p: Q
3 r% o' W7 e$ a
域名:domain.com
9 t. n7 S, q" k& b3 H; t1 ?绝对路径:/home/domain.com/
+ r- ~! m9 i6 Ywww.domain.com 自动解析到 /home/domain.com/www/
! D6 `' U& k3 P" ?! P; X: H% `* Cabc.domain.com 自动解析到 /home/domain.com/abc/
  U* O. \( ]$ ^7 T! ]2 F% Y等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
; Z" J0 k$ _9 i' p直接建立子域名名称的文件夹即可使用。不需重启apache。

返回列表
【捌玖网络】已经运行: