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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:$ d# V/ @8 |) z6 s" W
: z2 T( M* ?  @3 ^) {( j# }% h: _( _
RewriteEngine on) W9 S2 @* V9 {
RewriteMap lowercase int:tolower5 @6 r7 {* r9 I3 s7 A" m
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
. `* |8 k; x/ E5 _! i! ?( cRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
0 p! q) o2 |$ k. F) p) XRewriteCond ${vhost:%1} ^(/.*)$2 T8 D, @; t  C  `9 i# d
RewriteRule ^/(.*)$ %1/$10 H" {( W0 ^  f+ g% `2 m8 a- Y
, c$ V! @* w5 K# S) W7 |
$ v6 O" Q7 t: [8 n  U
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。7 s3 Z! h& K- J0 V
然后,在这个所在路径的目录下创建一个文件: vhost.map9 _6 r, m" y! g$ U
内容为:
  \" d8 [2 b" ?. `/ x# p' @2 n+ z8 s$ \; ?7 }. F" F
www.domain.com /usr/local/www/data-dist/domain/ ?- g0 x: @" V3 p! t0 H
bbs.domain.com /usr/local/www/data-dist/bbs' f2 t8 A# l) E' _6 L$ {6 N6 C9 x
anyname.domain.com /usr/local/www/data-dist/anyname7 K2 H5 a, _1 j  u. @% h: k
9 U$ J  z( q' u5 D% N
以上部分都是:” 域名+空格+绝对路径” 的形式。
% I0 X" y1 y: T4 e
$ X4 e8 ^3 @% d: O; w最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
  U& y% g" ?, Ydomain , bbs , anyname 等等,理论上可以无限。
  L8 p- H0 K( P6 I- M0 L' f" O( C/ A7 n/ P6 l$ b- ^
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
; Z4 P$ J+ V: E随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
7 U, ?$ g' {  R) \$ q% b; g4 Z. ?# o9 `0 p' `5 U6 O' s! y6 {0 I/ C: d
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
* Q0 u( A' d! u" |第二步:打配置文件尾部加上+ r3 {/ M* p5 h" Q; @% ]( \
RewriteEngine on3 c- g4 \1 x/ |+ y7 S4 M
RewriteMap lowercase int:tolower* E' b7 ~# D( y9 r- G2 Z) k
#定义映像文件5 p0 L2 `- ~5 w' R' w
RewriteMap vhost txt:/apache/vhost/vhost.map2 T2 J5 m& B' ]. t& G
#处理变名; t! P+ r% F$ g$ F- R
RewriteCond %{REQUEST_URI} !^/icons/
/ f9 Y4 K2 k$ MRewriteCond %{REQUEST_URI} !^/cgi-bin/# {6 e/ C5 y: i5 S& p$ [
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
; ]  N! C0 U3 Y% ]: t这里做基于文件的重新映射1 ^: j! W# }! ]/ G; w2 _
RewriteCond ${vhost:%1} ^(/.*)$5 k% h0 c9 o' D8 c* N- _  p& \
RewriteRule ^/(.*)$ %1/$1
, ]6 s- m; u2 I: Q: {. hRewriteCond %{REQUEST_URI} ^/cgi-bin/
$ r. \! Q& P9 W; r  C; a/ KRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 s' S: {: ]; \
RewriteCond ${vhost:%1} ^(/.*)$
) \' w! X9 G! p: j' S; b. }/ k6 R' T& WRewriteRule ^/(.*)$ %1/cgi-bin/$1# b  r1 {/ q4 T
9 T+ E! K* T2 W1 g4 a& x* K7 o- C
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
1 g2 l7 u3 L" }/ z" }0 M; G" |www.abc.com /vhostusr/www.abc.com! Q1 v5 u! b% e/ x
www.xyz.com /vhostuser/www.xyz.com3 @% U; \0 {4 Q& b
www.cccbbbb.net /vhostuser/www.ccbbbb.net# a1 z) K6 ?5 i+ X
.9 e$ Y. V! v! D
.2 c/ V: r, ?0 ]3 h
.
: n. k' v; z9 m: i1 `+ W8 p8 P.  i8 h0 w/ i7 p7 U' g
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
" ~# c. G0 s. c6 E9 O第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~4 b  a* f1 ^9 z6 u2 L) R( ^
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~' v7 d7 H' A$ @- l$ ~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
5 A4 p: _  O. b' W* ]' g, [( M==============================================( Q' ]4 n( i: X% }: n: J
方法二、, U" Q+ h# x( i5 s
7 ~" k1 B+ `( ]1 `8 i
9 g" {6 R1 a6 i3 F$ {
rewriteengine on
9 u0 d: U4 h3 v5 {4 _3 drewritecond %{HTTP_HOST} [^.]+\.域名\.com$
4 H2 C& x2 Y( drewriterule ^(.+) %{HTTP_HOST}$1 [C]
; E! Q' a& t8 Z2 d. Mrewriterule ([^.]+)\.域名\.com(.*) /$1$20 t% K- p( ?- T1 d5 i* z
其他配置文件
/ r+ |3 L' q9 z# ~; T
& w) g2 x, w' C( L6 ?& ?接着在DNS中开设一个泛解析到对应的IP地址。, @' |  O: S' V. J! ^
就可以实现下面的方案。
- p% b1 G4 |6 a& j2 M) o1 @1 z- t$ T( h9 j6 G! [* A
域名:domain.com1 W* y% z% t1 w+ Z  D- \$ ^  r
绝对路径:/home/domain.com/. D: y0 A. r2 I: \# ]' ?% l% y
www.domain.com 自动解析到 /home/domain.com/www/
# W  N, [" ^9 D* Z; _+ Babc.domain.com 自动解析到 /home/domain.com/abc/, U/ H; r* r& |# D6 G
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
1 G6 ~, T' H( }" W2 }' n( N7 m直接建立子域名名称的文件夹即可使用。不需重启apache。

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