返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
$ D: f0 A3 J. n+ L* J+ ^4 f6 @4 K- g% k# f* {0 M# G
RewriteEngine on! r5 k% ~1 F* k- Y5 @
RewriteMap lowercase int:tolower% O* @' H( `7 o3 G6 [, L& r4 C- _/ j
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
3 T  l( Y# x; }2 C6 W8 R  QRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$# x  O3 A3 j' R
RewriteCond ${vhost:%1} ^(/.*)$
6 C, r6 |( w) F7 U1 ERewriteRule ^/(.*)$ %1/$18 Q8 g# s  Z% A
9 z% x: p2 I4 K3 S8 P( d

% O5 ?' L( [1 e其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
  N) Q  j: E' m, B5 E$ }然后,在这个所在路径的目录下创建一个文件: vhost.map# N6 o6 Q) u# Y* D
内容为:
1 S- X: L9 o9 l1 I
% V  @  F1 U& y/ T$ m7 r$ B( ewww.domain.com /usr/local/www/data-dist/domain
5 B; F" ]" }# y9 Z0 z) rbbs.domain.com /usr/local/www/data-dist/bbs: f0 q/ T" L) k* z7 J% Y
anyname.domain.com /usr/local/www/data-dist/anyname
. q9 ~+ i$ ]# ^- ]; R$ w. C  C. o2 S  k: F1 p( A4 E
以上部分都是:” 域名+空格+绝对路径” 的形式。6 S. }3 z7 M4 W

( G, W, s& x8 Y: T6 ^! Y, p最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
$ ], S! p! [, o9 G5 o, k0 P7 l3 ~4 a0 udomain , bbs , anyname 等等,理论上可以无限。
9 P! v9 t% k9 X6 z9 D' G& Z
- T: Y+ s' t( U8 @% v4 Z这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
" \* T% @3 \* H- @随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。7 k; _# W: m) R( j( H7 v
! ~* j( ~7 M0 ~( D
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
& n8 U+ s2 e/ H0 p4 c/ L0 h第二步:打配置文件尾部加上' p+ u0 [$ P' L' J5 d  t+ I1 ^
RewriteEngine on
& M# w" {5 t+ A9 f9 b; F: n( g& RRewriteMap lowercase int:tolower. R" \2 i) w2 N, h  F- ?0 {
#定义映像文件3 V  h  O: R( W! F, e6 Y! Q
RewriteMap vhost txt:/apache/vhost/vhost.map
* v. {. J! L8 m3 M9 a$ E#处理变名
4 s0 ~. U5 @: H! L2 w# FRewriteCond %{REQUEST_URI} !^/icons/$ D$ v* w6 m+ B, N$ O
RewriteCond %{REQUEST_URI} !^/cgi-bin/3 W4 M% u; c5 d; I9 R; K
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
3 o. K' f$ O. A! z这里做基于文件的重新映射+ |6 D7 B( K  m/ _  ?" ^
RewriteCond ${vhost:%1} ^(/.*)$
$ K0 [" S7 j5 K. V% m& [RewriteRule ^/(.*)$ %1/$1
' a3 N3 G3 u. ~  C, Y% `* C& PRewriteCond %{REQUEST_URI} ^/cgi-bin/$ w& m( `5 H  M1 I* A5 _* t! L% D
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
6 p2 J2 H) A& a) H; P$ ~RewriteCond ${vhost:%1} ^(/.*)$
% w8 a0 R0 L# E8 N# hRewriteRule ^/(.*)$ %1/cgi-bin/$19 I* J0 g0 c" f: s

% `* G  y4 e1 u& W) D/ H注意:vhost.map文件是域名和空间映像的文件,格式如下: 
1 h5 J( O+ z8 F1 j" @# W9 I; uwww.abc.com /vhostusr/www.abc.com
$ e, \: r. `0 q+ \/ Q8 ?www.xyz.com /vhostuser/www.xyz.com& g. I" x2 G0 N" x
www.cccbbbb.net /vhostuser/www.ccbbbb.net/ n2 @) y" j9 m: b7 ?7 p  M
.
6 e; C! q2 t( l2 W# M3 b.% B  t$ [) x9 X# m& i- L" G3 Q
.7 F8 v/ F: Q: p1 a' e
.
, c5 ]& @4 P8 U/ C(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
% ^/ Q" D. ]. A/ s第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~1 G. p0 P: m- l9 v0 W1 _
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~! J5 i0 f2 \. _, g" M# [2 a
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~& T% P# B/ |4 @! j3 [" Q* @
==============================================7 \) D, p+ J& v
方法二、
) o9 q4 h5 p+ v& z& p2 c1 [4 D' e! ~7 s( M# L+ s
" w6 a; g* N* g6 Y
rewriteengine on# @( @6 T& e; H; z! ^
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$0 P: Y- t2 s8 k# r. Q
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
3 P" n; I" m; t4 P- q3 Z4 Arewriterule ([^.]+)\.域名\.com(.*) /$1$2* z6 ^& g- l0 W
其他配置文件3 z( }# y( R6 d/ T
2 P& F7 E9 [: V
接着在DNS中开设一个泛解析到对应的IP地址。
( h6 R) _2 U. G- b就可以实现下面的方案。
% Z+ d/ F) y% H4 O- t, p/ a  v+ O$ \8 R
域名:domain.com
; M+ ~9 L' v' z4 S1 c' z绝对路径:/home/domain.com/
- }- N& |6 J; K$ H* xwww.domain.com 自动解析到 /home/domain.com/www/
) H: _5 L. c: F- g- |. X: M& iabc.domain.com 自动解析到 /home/domain.com/abc/
7 A& W% ?# V7 z) N- K  H0 O等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹: }4 B8 X) o+ C9 o1 _( d
直接建立子域名名称的文件夹即可使用。不需重启apache。

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