标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
2 |$ x' G$ D- U; \% t% Y" S
) ^( C! b O" F3 g
RewriteEngine on
0 P8 l8 m6 W) c% z" `
RewriteMap lowercase int:tolower
, E( W. \ e+ i: s2 E$ w
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
, `! X! U+ h# d' q5 k
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
1 S, i) m( V; h$ J( z; P% {
RewriteCond ${vhost:%1} ^(/.*)$
& a+ K6 m, y$ x6 C% q0 _7 z% X9 _
RewriteRule ^/(.*)$ %1/$1
1 |- ^# `) [/ V1 }
. k' A/ t1 g9 }/ G" \
- D" h+ z: `9 d# `
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
2 ?) G0 e+ x) R: m/ h4 ]3 E4 U; k' `
然后,在这个所在路径的目录下创建一个文件: vhost.map
- M( h, E, ~1 `7 Y- |* P& j4 P9 y
内容为:
* Z% X8 r3 t& A; _( A
- Y! @" o0 Y7 {! [/ y4 ~% p
www.domain.com
/usr/local/www/data-dist/domain
3 T4 W! F0 V) d+ q0 L+ i B
bbs.domain.com /usr/local/www/data-dist/bbs
7 X. |% V+ M& q7 x& T; `
anyname.domain.com /usr/local/www/data-dist/anyname
1 [6 K1 D+ K- G+ Y+ b! V/ A" i
, U/ t- A% M( i5 a4 L
以上部分都是:” 域名+空格+绝对路径” 的形式。
3 d- `$ |, n: Q; ?
0 F6 L6 ]$ @9 P& k) g
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
% n, V e# z, I* N& [) K7 W
domain , bbs , anyname 等等,理论上可以无限。
0 T2 p+ ?4 O1 W: [& [) r# R
2 @% }5 u) ?; f1 r( B* w! b% V5 t
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
% W. d R9 A0 R
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
5 Y* W7 ^+ [% H3 v4 l% Z- e
( C/ e2 Y1 H6 {* [) J- V! O% g
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
+ \4 q& f% U6 a+ D) }
第二步:打配置文件尾部加上
* W( {: |) T- D$ A
RewriteEngine on
2 R* t; {+ {- i4 v$ S
RewriteMap lowercase int:tolower
& n1 c! b Y& K$ J: [3 D! T- T1 G2 U
#定义映像文件
: g2 @1 P& h. Z5 F) D
RewriteMap vhost txt:/apache/vhost/vhost.map
4 ?$ |+ `5 l' K4 @: ]* V
#处理变名
3 l c2 g2 ?8 B; K7 M* |
RewriteCond %{REQUEST_URI} !^/icons/
# s6 F, _8 q" o& R1 b: _
RewriteCond %{REQUEST_URI} !^/cgi-bin/
9 a3 ~' q0 k8 d0 M, _$ P
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
3 C! p1 M( r: {
这里做基于文件的重新映射
8 Q/ C) E! h- a5 s% W
RewriteCond ${vhost:%1} ^(/.*)$
* C n7 `( i; w8 ~
RewriteRule ^/(.*)$ %1/$1
. F: _$ D7 ^5 t$ L+ t
RewriteCond %{REQUEST_URI} ^/cgi-bin/
% G: V" V6 h: D% ^
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
2 b! u/ a4 S4 X- A! P" F
RewriteCond ${vhost:%1} ^(/.*)$
- i% ]! s; E% j1 r& k, F
RewriteRule ^/(.*)$ %1/cgi-bin/$1
1 ]! ?3 P) S! l" P. z: J
: T. c/ f0 Q4 j1 c- }/ C B
注意:vhost.map文件是域名和空间映像的文件,格式如下:
. t; d# l/ D \8 m: s! a1 \
www.abc.com
/vhostusr/www.abc.com
- y+ m& b( `; ?$ k4 C
www.xyz.com
/vhostuser/www.xyz.com
: \0 h8 b8 U4 P) E
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
3 J, D6 k/ H8 z
.
$ q9 Y) J3 J: n% G
.
L2 k8 g X7 ~! \0 S1 }0 H
.
5 R6 x' H1 ^0 `' k9 O8 K
.
! R* ^" T! V! I/ a+ n- ]
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
9 X6 v+ u; ]& o z+ N
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
6 {& @. S/ R4 c( K- G5 ^
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
! j* l3 r0 ^" P4 e# f) j4 U' Z
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
& s3 h8 _+ Y! ~
==============================================
+ i4 d+ F0 R! j* r8 v# K
方法二、
4 @5 a3 H b6 L- q4 _/ e# @9 _
0 s1 R% `! L/ I) j, f6 H
* R7 H1 I* |# G
rewriteengine on
( y' }, U; V' H$ R
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
: H, H3 g0 b+ z& _& t/ f
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
* w/ ?$ ]0 |# o, h
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
9 Z0 J7 O9 R0 ]! {" l
其他配置文件
' l& P3 n% G0 _" W: M
% ]2 n1 P' t3 F
接着在DNS中开设一个泛解析到对应的IP地址。
/ a6 r/ F/ t1 q5 |7 U. ]4 d
就可以实现下面的方案。
5 n! H9 q8 ?$ f( [6 C, J) F8 ^4 ^' M
- F! v# X2 O! W. r( _, @6 W
域名:domain.com
6 r1 m& X5 R- ~: V1 ~' k) C
绝对路径:/home/domain.com/
. ~: [! H3 x+ H& h O" s
www.domain.com
自动解析到 /home/domain.com/www/
0 W. M3 Q! G/ D" D
abc.domain.com 自动解析到 /home/domain.com/abc/
3 G$ |! C* J8 z4 g1 Z
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
. V4 x( k! s9 |; Y
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2