|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14387
- 金币
- 2479
- 威望
- 1647
- 贡献
- 1427
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
7 v8 e9 m1 z6 I- S$ q4 k* D6 F1 ?6 l8 L
RewriteEngine on' b+ A' E! U6 U
RewriteMap lowercase int:tolower
, y, M9 w& R# K) \# ?7 n- y! j0 ARewriteMap vhost txt:/usr/local/etc/apache/vhost.map, r5 D/ w8 W9 {& F# {
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
. d# ^5 @& W3 z( D- aRewriteCond ${vhost:%1} ^(/.*)$
% o p2 n4 S* f* v; d4 q& C. xRewriteRule ^/(.*)$ %1/$1' `6 @; W4 Z+ L( C3 W. g0 o8 l
2 t& A% U7 c% o, g! e$ @5 \. P; _ A) h' P6 r0 c
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
4 O. D7 W+ S% v' n1 @% P6 _( |5 ?然后,在这个所在路径的目录下创建一个文件: vhost.map
. g$ { [! ^4 R# @4 A9 j" |# k内容为: e! k; n. T& g; @( o& Z( @
& J4 q; t6 {# @5 X* x1 V C6 Gwww.domain.com /usr/local/www/data-dist/domain
- Q8 v* c X4 f p: abbs.domain.com /usr/local/www/data-dist/bbs
& E5 R/ J1 @. ~- f8 R) k$ M# q2 Nanyname.domain.com /usr/local/www/data-dist/anyname( E! R, u+ R* g- v! u1 g" z0 ]& r2 h
4 \6 I* g3 s4 \2 [6 f* E- a
以上部分都是:” 域名+空格+绝对路径” 的形式。
1 a4 e( D) w2 `( K! R
2 j5 s* r2 e! Q) F7 y/ G1 b最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:0 q+ M H/ _" b, i
domain , bbs , anyname 等等,理论上可以无限。) ?6 ~3 G/ T) S4 c/ _6 u; }0 H
0 I U. ? U3 n- ]$ t/ s+ m这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
+ ~: q' E% @& i7 i z随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。$ k* _+ m: N& }
( Y0 T6 Q6 y6 _' o
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
5 U. T* {! C) H第二步:打配置文件尾部加上( k' ^, U8 D3 C5 x( M
RewriteEngine on
$ B3 J7 X. z8 }" CRewriteMap lowercase int:tolower
7 T p2 R/ n4 x* K#定义映像文件0 i; f8 c1 R! @3 h
RewriteMap vhost txt:/apache/vhost/vhost.map
/ K/ J$ c! g9 z2 X8 a#处理变名+ [: Z6 ~) K, h# r# g6 u
RewriteCond %{REQUEST_URI} !^/icons/ l9 N' s5 u5 V
RewriteCond %{REQUEST_URI} !^/cgi-bin/
9 h( q& o6 M" }% g- h/ dRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
3 H% J$ U& d7 u& [1 M这里做基于文件的重新映射, s1 e, i: @6 q7 j6 q
RewriteCond ${vhost:%1} ^(/.*)$+ W. Y+ q2 y* b; |
RewriteRule ^/(.*)$ %1/$1; [) \& \" b* g
RewriteCond %{REQUEST_URI} ^/cgi-bin/" f' R7 K. ^3 K
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$1 D4 d$ ~( W4 \# k* m5 S6 S
RewriteCond ${vhost:%1} ^(/.*)$/ Z. a: m9 J4 u- p0 x4 i
RewriteRule ^/(.*)$ %1/cgi-bin/$1
1 t- R6 I- B6 g8 r% b5 ^6 J# @4 g9 }' m1 @
注意:vhost.map文件是域名和空间映像的文件,格式如下:
% V# Y5 b% B/ }4 wwww.abc.com /vhostusr/www.abc.com( s; X9 A1 }$ ~" B, Q" ]- l
www.xyz.com /vhostuser/www.xyz.com
* b8 {; V5 G7 S; ~www.cccbbbb.net /vhostuser/www.ccbbbb.net
" R' }# B+ w8 {) K7 \& L2 d.
& _* r6 C7 n( Z.2 }3 ?! C! D" G, L! O K e" ~
.
$ K! g" a$ Q' M* p- p$ H9 e* T.' [- ]; ` Y* Z3 h
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)2 L3 c" u- o; C, Q
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~2 n ]2 F/ F( E' X! T3 F
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
, w; |% G; u1 c. E; M1 m+ x注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" J/ Z. b l: h' b5 O, }7 h==============================================" e( l& q' E% I- X& X( h
方法二、" u! o6 V7 u/ R. P
K; x; X- s/ `
' ?% f# X! S0 P6 w: Trewriteengine on( L& h- M& q2 U2 O8 r* r/ F
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
; `1 X3 o @/ F" srewriterule ^(.+) %{HTTP_HOST}$1 [C]
) N- Q. g* F! n @1 ]3 ^rewriterule ([^.]+)\.域名\.com(.*) /$1$2$ Z H, G+ z1 U% Q) B t
其他配置文件
$ v T/ ? J4 f1 v: p
" G( T' h. \* L& L3 {接着在DNS中开设一个泛解析到对应的IP地址。
, C2 Q9 ?2 c2 g/ U7 C就可以实现下面的方案。# S' I& B+ O3 c7 j, j
& u9 S, e) n& r3 l3 j& ^域名:domain.com
3 S" i: K1 V5 k I+ A绝对路径:/home/domain.com/
. [6 p7 R" R% D) mwww.domain.com 自动解析到 /home/domain.com/www// N% v% l, Y6 n, `% P
abc.domain.com 自动解析到 /home/domain.com/abc/3 D& k; [1 ^2 m: T, X
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹1 K4 |$ `* A' c) I7 O) B
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|