  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
/ P1 `7 ]2 K+ m7 e4 h5 e4 d
1 f% H7 D2 {. T) i* O- J) m+ KRewriteEngine on6 b" R" _3 ?3 F& h0 r5 B7 E
RewriteMap lowercase int:tolower3 l! @- B$ C, z
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
! C8 q2 w- z8 O* a' u4 y. k' ]RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$2 d* F. i# O$ f. ?
RewriteCond ${vhost:%1} ^(/.*)$3 S# j% {9 Q" z4 U2 ^( F
RewriteRule ^/(.*)$ %1/$1# c' Y% J6 T+ L5 U( Z( X' Y1 G
: }3 Q0 M* p9 \+ ~" F% ^( ]
# V" b4 [4 [. Y: N其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。/ S5 m) b% [) C$ v* M! o3 J- ]
然后,在这个所在路径的目录下创建一个文件: vhost.map
$ ?% Y7 Z6 j; Q* x内容为:8 e6 f9 G& [3 U: [, q% N) |$ D
7 e( a( k% S( S+ n$ twww.domain.com /usr/local/www/data-dist/domain
+ U, f2 i) p% v& q& D9 Xbbs.domain.com /usr/local/www/data-dist/bbs
) b, P( Y d& @( ]anyname.domain.com /usr/local/www/data-dist/anyname- d- O" D, L- r
1 \$ X( m" k9 X8 Q: L" c以上部分都是:” 域名+空格+绝对路径” 的形式。
( o2 x2 F+ V+ s. v/ F$ [6 p" Q* X# \
, m, A1 b& G4 t" v最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
# @: M8 G3 }5 sdomain , bbs , anyname 等等,理论上可以无限。. }9 w. I2 Z' l4 \" P/ o' m; E
9 S3 z2 Y. |3 G5 I7 x4 k, _这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
$ p: m3 o! ?3 W9 l3 L) L$ A随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
! W X0 s+ w3 U9 x$ B" k# r" |# j. I3 h. k
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。# q3 S, o% H- i, m% N
第二步:打配置文件尾部加上3 \- y6 x$ c" q- v
RewriteEngine on2 Y; s$ L& f- }& E7 A
RewriteMap lowercase int:tolower$ D2 g$ o& d' f/ V
#定义映像文件1 I, P9 ~% N; R
RewriteMap vhost txt:/apache/vhost/vhost.map
& _7 P8 {5 Q2 R% U/ x#处理变名7 h- n% G- Q: K/ [: I
RewriteCond %{REQUEST_URI} !^/icons/* F( D% s* s$ B1 f, w6 o
RewriteCond %{REQUEST_URI} !^/cgi-bin/9 B' B" b, E; P
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
, {3 Y4 j4 |# E2 D X这里做基于文件的重新映射
$ A) Z' g9 h5 K1 m! N3 P' t* f% iRewriteCond ${vhost:%1} ^(/.*)$
4 O0 ~; ~: W4 N J/ P3 ARewriteRule ^/(.*)$ %1/$1' w' m. A, }# j& b' W; i+ v
RewriteCond %{REQUEST_URI} ^/cgi-bin/6 `, Y: R$ J9 M7 b ?9 }
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
( O6 q2 q: n. ?- I5 ]% k+ KRewriteCond ${vhost:%1} ^(/.*)$
7 R# p, o; ^/ j2 B4 oRewriteRule ^/(.*)$ %1/cgi-bin/$1: i& y1 x+ l# o0 C0 I
5 `$ g# k+ `, h注意:vhost.map文件是域名和空间映像的文件,格式如下: ; X1 ^3 n9 y# h* O* w
www.abc.com /vhostusr/www.abc.com$ k0 J5 f4 X* W1 @- t( E' j
www.xyz.com /vhostuser/www.xyz.com2 K* A* J- d- L0 {; U: L
www.cccbbbb.net /vhostuser/www.ccbbbb.net+ F4 I: _; b. H& j( u
.
; W7 j7 @% W+ @( A% y! ~" |% |: L.1 q* j; @, u) y" A
.
8 \/ O( S0 v5 o. F8 h0 s2 R! r.
- h- Q. a' Z; q(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)( Y3 J% T" A/ N, a! u' a
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~+ N3 D. ?$ {/ m1 v6 V4 v! {6 i: c
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
' [/ E9 q* d1 Q9 S" }1 z/ M注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~* |* B T L E5 u8 ?' a* v
==============================================
- l8 B0 _; a& n方法二、6 v. u$ v* u. [# W5 f$ R8 Q
. G; z% w3 R' V
. a- U! {* \" i0 C; X4 b( Lrewriteengine on+ H' a0 k' ~# n7 R# N7 k1 v
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$4 W9 N4 i, \/ \8 N# \7 L' Q, A3 N: v' J
rewriterule ^(.+) %{HTTP_HOST}$1 [C]% t, ?+ c0 B+ W6 }
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
, L1 ^. n6 A& q7 S! [# |& @其他配置文件
@+ G! ?. x0 M3 h5 a+ W
7 K! C2 S' k. a2 K5 {% I7 G接着在DNS中开设一个泛解析到对应的IP地址。
' O2 m# B" p7 n就可以实现下面的方案。+ u: t: x3 O/ v: h3 P
: m" K4 d8 |- ^域名:domain.com8 h$ L5 ` r l% G, o, j U: D
绝对路径:/home/domain.com/
- h4 Y+ J1 V5 @3 r7 X3 j3 Awww.domain.com 自动解析到 /home/domain.com/www/ B0 S& {3 Q7 c l5 O. Z
abc.domain.com 自动解析到 /home/domain.com/abc/9 _2 H! ]" N! F4 S
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹9 w& M3 \+ K7 s% _7 a( s/ R- T
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|