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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
- e1 m+ Q' p  S% |- T, w% ^+ c; W8 ~& _6 }
RewriteEngine on
0 A  B3 J5 l# n" n- v7 nRewriteMap lowercase int:tolower
# {' N, j9 K' ]+ S# ]3 x2 f0 Y* R, wRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
- A, [0 b/ p1 s  T5 Z8 W) q/ N- _RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$# C8 G4 @3 a- c3 J, z* {
RewriteCond ${vhost:%1} ^(/.*)$9 K- g) ~6 q+ f. y5 i7 |; R( ~
RewriteRule ^/(.*)$ %1/$16 i( a6 I: h% e) d/ N) N6 J
( z1 u8 k! P& t5 }) b2 y
% u) y2 u" @6 P0 L( V
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。# L1 ~* r1 Q" S4 F9 u
然后,在这个所在路径的目录下创建一个文件: vhost.map
: Y  L1 O: X) L9 A: y$ l内容为:
1 d/ _* V5 ~- v, ~$ L" O4 E
* g  ]- ^$ I* j, x$ B" t# w8 awww.domain.com /usr/local/www/data-dist/domain
' @/ d$ Y% w. g* B: Fbbs.domain.com /usr/local/www/data-dist/bbs
7 e/ f( K# u. E6 {4 c- e6 Manyname.domain.com /usr/local/www/data-dist/anyname3 F( z  C# N6 h! ^0 [* X  A. d* u
- ^) W. }5 Z; S8 _( O% T
以上部分都是:” 域名+空格+绝对路径” 的形式。! t  G& w* V1 `0 l% `1 `3 x: o
# [  O0 f6 ?/ V, g* x6 L. M8 F. y9 _
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:% ^. O' |5 v8 e1 Z# a
domain , bbs , anyname 等等,理论上可以无限。) x+ U% }, x$ F2 x( r

) t4 E! q4 s8 r& G这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以+ r) ^& C3 j* d) w
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
' U# u6 {; r6 S3 y% k4 k
/ L- \. }8 ]& t" e' H) |0 R$ G0 f第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。$ b' L( J1 U5 S# j
第二步:打配置文件尾部加上
1 G' u( {4 T% P# |, R# [RewriteEngine on
/ K0 N$ S8 m. J, Y2 h5 G" TRewriteMap lowercase int:tolower4 X$ h" {% k  h$ `' }; \4 M! F
#定义映像文件- v$ f" m6 O( }7 d& H6 L: F2 w0 {
RewriteMap vhost txt:/apache/vhost/vhost.map8 M+ O5 }# y- a) f
#处理变名- y: M: \' q. e* n* n
RewriteCond %{REQUEST_URI} !^/icons/- }, Z% E4 {: g# [7 Q# m  I
RewriteCond %{REQUEST_URI} !^/cgi-bin/
* i$ `5 e- u# [( oRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ P& o9 c& g& _8 D" }这里做基于文件的重新映射
' G9 _4 D4 I) VRewriteCond ${vhost:%1} ^(/.*)$
; \8 `7 [8 E& h. FRewriteRule ^/(.*)$ %1/$1
6 |- l( f, {) m% _RewriteCond %{REQUEST_URI} ^/cgi-bin/' r( d( q2 ]. \$ X* e. R
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$$ r- e7 d5 f9 L5 S
RewriteCond ${vhost:%1} ^(/.*)$* @9 R$ x% A# s! w
RewriteRule ^/(.*)$ %1/cgi-bin/$1* D; j) H, j1 m9 [2 e/ g

- G+ z% L0 E' p) j4 y0 w9 V注意:vhost.map文件是域名和空间映像的文件,格式如下: 
3 h( t( A0 u' W) h. Owww.abc.com /vhostusr/www.abc.com
2 o! S& {' q4 {5 T4 i. F$ s7 Uwww.xyz.com /vhostuser/www.xyz.com' {0 S. g/ g5 R; D6 T* c! g
www.cccbbbb.net /vhostuser/www.ccbbbb.net
  a3 Z! l; i4 |- f& O.
" A8 l' `$ q- S; X# B' m1 l.% m; D' B' c. z+ c: p
.
; k1 w3 J) W% b7 @; b0 F.
5 g6 ^2 c6 O& |5 C) N(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)4 {8 z, o4 R# ]2 T
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~, A. s% K) O* B/ E6 y& f5 z4 |2 w
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~- C  k2 n9 K% {: ~5 ~$ s
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~2 ]/ G5 i! N1 @8 l) |
==============================================
- \, Q6 d1 w4 ?6 E& H2 G4 ?方法二、
5 z/ J8 W. K* A1 H
) Z* }  X" q. p
; C3 Q) O: k% c+ Krewriteengine on, D9 H) O$ f7 j' }$ E
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
0 ]6 Q/ l: X9 q- k/ Orewriterule ^(.+) %{HTTP_HOST}$1 [C]
" e! _9 [: H* _: nrewriterule ([^.]+)\.域名\.com(.*) /$1$2
; v6 K3 C( w4 B7 h其他配置文件
: \1 [( p' N# |$ `$ S6 K: Y2 v) x' T: ~: h, Q. u
接着在DNS中开设一个泛解析到对应的IP地址。
1 }3 G3 L. ]- D' }9 q6 f( h就可以实现下面的方案。, L% F8 K: g4 ~, R" L: t$ ]
, l0 a2 T* y% N3 z/ Y  t
域名:domain.com
9 q4 Z& Y  |) @8 E) S绝对路径:/home/domain.com/
! K3 ~5 d( z% P4 O6 g  f3 Wwww.domain.com 自动解析到 /home/domain.com/www/
) x  Y4 T+ L; x7 b2 J& h, oabc.domain.com 自动解析到 /home/domain.com/abc/  a' G" q. g* A
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
) J% T" y" P2 x6 N$ b直接建立子域名名称的文件夹即可使用。不需重启apache。

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