  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:' `1 i0 C+ w$ q& I& n" H
]$ H L: m6 [2 b
RewriteEngine on7 F. V: `3 r' m& o7 V8 {
RewriteMap lowercase int:tolower& J/ G8 ?( x# f
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map2 m' K( y( S: P- I8 P
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
! V& |5 ^# b8 N3 W3 @7 nRewriteCond ${vhost:%1} ^(/.*)$( f9 Z0 ^8 L. Q/ w9 k7 q7 w2 j& f
RewriteRule ^/(.*)$ %1/$1
+ C# q( Z4 ^- K/ L, C# ~7 Q3 x! \4 _1 {' P- }6 u. R) E8 _9 ?2 @/ A5 @( o0 I( p
8 i7 n6 z/ v* h3 x, Z2 Y {
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。2 I& N; k8 a5 U0 D4 n
然后,在这个所在路径的目录下创建一个文件: vhost.map. |" Z6 o$ y# G( A' N! a k+ W
内容为:
4 l; t3 R/ f! z% |+ Q. E% q4 I6 |; f. `4 m+ v/ d6 U* j
www.domain.com /usr/local/www/data-dist/domain
+ b# K2 g$ J$ o) u" ~bbs.domain.com /usr/local/www/data-dist/bbs7 F# k" C; N2 D' J
anyname.domain.com /usr/local/www/data-dist/anyname3 x+ G* q1 |: x; N( T/ _
/ j) f/ ~6 e4 F
以上部分都是:” 域名+空格+绝对路径” 的形式。; d( z2 d5 i. Q/ e2 l1 w$ M6 ]& {
2 @" D3 W% `& {1 l! e最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
, q$ P/ Z/ O4 I5 G' `domain , bbs , anyname 等等,理论上可以无限。
1 Z ]( l. S: F5 e6 K; m% Z
# k/ v i" f$ @* T& \6 }% \7 G/ u# k. A这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
4 q9 [7 c8 H6 r( h. v- \随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。3 Y0 F% s W+ y$ o5 O$ D
! O' v" B5 B9 p4 h( k. Z3 r第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
! E0 c% f# w5 a' l3 _7 m* m9 `1 d第二步:打配置文件尾部加上* N6 f2 N, l# Q5 W% x
RewriteEngine on, o! M S9 U# b |# l7 h# i; s
RewriteMap lowercase int:tolower4 h4 W+ Q6 }# d% l- \6 f& x
#定义映像文件8 J9 f) Y# y9 c3 J1 i: B
RewriteMap vhost txt:/apache/vhost/vhost.map
$ |' j" r. x" d; U/ m/ U e#处理变名) u% g% w1 W: G, G
RewriteCond %{REQUEST_URI} !^/icons/
+ N+ s$ ~ s5 n4 ]2 E" p+ }/ aRewriteCond %{REQUEST_URI} !^/cgi-bin/0 @" F' l$ [7 V! c+ q5 k* c5 j6 Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$3 n" Y: i* ?9 S
这里做基于文件的重新映射3 U* q8 c7 | O' s
RewriteCond ${vhost:%1} ^(/.*)$- h4 U5 M* R/ a6 {% j" L, b
RewriteRule ^/(.*)$ %1/$1
" k) ^! g* @! F+ o2 l, V9 ORewriteCond %{REQUEST_URI} ^/cgi-bin/
, J [2 A$ P' B0 GRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
2 {) ^" M4 p6 Q! f/ t$ t" MRewriteCond ${vhost:%1} ^(/.*)$
: ?/ _- _& D3 o! ERewriteRule ^/(.*)$ %1/cgi-bin/$1
1 Y1 c: {/ \. m6 o: h4 l. S6 m+ M# ^4 @) D) r$ p
注意:vhost.map文件是域名和空间映像的文件,格式如下: 9 X+ [) \! S# w* n X4 S
www.abc.com /vhostusr/www.abc.com9 e* y! ~) R5 c: Y# Z0 u; U
www.xyz.com /vhostuser/www.xyz.com
7 j2 c! ~6 `0 E5 I0 j/ Awww.cccbbbb.net /vhostuser/www.ccbbbb.net8 g& R' q# |+ j
.
# c; d4 J* a. a.
, C. z; o- H7 R.) m& S4 j4 o5 S* @$ {/ E
.
( {% ~9 c( s$ X- @! b$ X(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
, j9 T" V4 D' z y& r _3 S第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~" W( c5 t' {% G; ]& M
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
- B$ Q& E6 K' w9 L8 ]注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
' ^7 j+ ?& k$ C/ S) V==============================================
- K G' W/ |' c- s+ ]6 @方法二、4 R# t- g4 d3 ?3 P3 l* [1 t7 t; z
6 u7 l! z2 F' o: H' u4 U
; I1 o4 J$ D1 ?0 J7 q# \6 I3 _- U
rewriteengine on4 u) V7 ?/ U$ W( d5 e$ D: O
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
# j0 d3 ?: E" j, d6 D) a! O* x2 Erewriterule ^(.+) %{HTTP_HOST}$1 [C] t, {" P$ `2 @8 r1 ~
rewriterule ([^.]+)\.域名\.com(.*) /$1$2/ v9 W) w: ~4 R9 y5 n2 Y2 g! q
其他配置文件
- M5 s$ B- q) F" S+ l# z; s( ~. x- d1 E2 M( M# `+ ]' L* Q
接着在DNS中开设一个泛解析到对应的IP地址。" N- o' z0 [. H0 r- p ~
就可以实现下面的方案。
6 U/ z* z% G6 ?" C- H7 T- H6 j* s( t
( S/ F/ L- `2 b# z域名:domain.com& }2 }+ l$ Z/ v- c/ y0 X% t/ D! m- s
绝对路径:/home/domain.com/" b f6 o, f$ h- m6 u* e) q0 L
www.domain.com 自动解析到 /home/domain.com/www/
( l* i: F7 r7 |/ ~4 ^+ _4 h; labc.domain.com 自动解析到 /home/domain.com/abc/$ q4 Z9 k5 b6 _/ }
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
X8 `3 G+ T9 u" A0 {. r9 m) X. `直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|