|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14323
- 金币
- 2447
- 威望
- 1647
- 贡献
- 1395
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:4 F: h7 M# F1 j
" X& [6 O4 {- X
RewriteEngine on4 E8 I; ^( ]* P6 n( F% i: I3 M
RewriteMap lowercase int:tolower% t! L: v9 z# e' I$ q2 f3 D( l+ \
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
* h! Y' y' m3 R8 z; U" v# i) qRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% m; v# t+ P% {& [) \7 \9 Z9 P, MRewriteCond ${vhost:%1} ^(/.*)$( S" c; M- j7 W3 R3 m
RewriteRule ^/(.*)$ %1/$1
$ Z+ r) L' `2 g# w
5 e; Z$ c0 c! e: J; {9 d* B
1 p: E5 j& M$ f$ Y) h其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
/ p; ^5 a! i) n. ?+ r, c0 o/ q. N5 Z然后,在这个所在路径的目录下创建一个文件: vhost.map
, h, k k* n) K5 C$ z内容为:
- X6 L$ O& ]! l' E) a
" z9 I1 x% F6 O6 i* |www.domain.com /usr/local/www/data-dist/domain
9 s$ }+ N- s% w) c! I: b- Mbbs.domain.com /usr/local/www/data-dist/bbs! d3 o1 i' j) n; z
anyname.domain.com /usr/local/www/data-dist/anyname
. F- ?# s/ y4 W3 R
" `% {0 A4 ^ c( g! D以上部分都是:” 域名+空格+绝对路径” 的形式。, H1 a$ H8 J! Z* j6 M
( G- P3 @$ ?% Z- X& K6 n% ^, [6 c
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:- f, \: r' w0 A" P1 ?$ ?6 _# U
domain , bbs , anyname 等等,理论上可以无限。+ j. U1 H# D& A! _4 I9 l
/ h8 U! s( ~* P: w# p5 i" t3 P
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以) l* y& c' ^: z; D& ?. q7 F
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
* R' ~, V; I, p8 t5 ?( ~' j0 o7 v. h M4 a$ q
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
`! S$ O$ s1 C& s# `' A& G2 n第二步:打配置文件尾部加上6 S/ q/ Q1 z% J8 {
RewriteEngine on# }" s! `' ^3 S ~! f
RewriteMap lowercase int:tolower- Z* G6 a* T5 K# s H$ @
#定义映像文件' Q2 s, ^/ h9 F' x0 `2 c
RewriteMap vhost txt:/apache/vhost/vhost.map
b0 r4 f$ u* ~3 `0 _2 y#处理变名7 @ \' y3 g* z! C
RewriteCond %{REQUEST_URI} !^/icons/
0 l: v s% @0 m% O2 A* ?RewriteCond %{REQUEST_URI} !^/cgi-bin/7 v' Y$ ]7 J, c) T
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
7 n9 `1 Y4 F- G0 i( t这里做基于文件的重新映射
7 h' K0 [$ _1 G2 J! p! E" g- ARewriteCond ${vhost:%1} ^(/.*)$' V, L4 U3 h0 w! t4 G, N' J7 J
RewriteRule ^/(.*)$ %1/$1
8 e7 Y; H% R! Z5 q& {6 ^RewriteCond %{REQUEST_URI} ^/cgi-bin/8 b! K' m% f! u" |
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$+ W; e: z2 m8 r0 j9 i- g
RewriteCond ${vhost:%1} ^(/.*)$
5 R! z. t) Y; k1 M$ p& u/ S+ B7 qRewriteRule ^/(.*)$ %1/cgi-bin/$1
" U' D' n* T# H% p7 ?# N$ U4 r$ q# f0 F8 i( v% Q3 r+ f# _ B
注意:vhost.map文件是域名和空间映像的文件,格式如下:
6 p2 m1 p! ?- I1 j7 Rwww.abc.com /vhostusr/www.abc.com
+ M. {# ^" T8 O. C- P+ x, A# Vwww.xyz.com /vhostuser/www.xyz.com( o5 A& s& k Z
www.cccbbbb.net /vhostuser/www.ccbbbb.net8 L6 C% W- t' n0 d ^1 Q; Q
.) o1 x! `; L1 t; O: b# z( E
.
' d9 x9 w2 \/ t1 `8 j$ g9 [.. E( ]( A4 Z8 L7 _/ G) @
.7 T. D7 y2 ]4 B
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)1 k+ d& F1 X. X, p s5 a
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
8 ]+ v( {& \! I; u6 F& Y& s其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
) g8 V8 P9 K8 P$ m注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~7 k9 E( U8 t/ w' |1 |* R2 S/ T
==============================================: H4 c ^% @! b9 o' y& n$ _
方法二、* U- ]0 ^( C% ]) Z7 V7 |0 v
+ W1 w* b. x4 x
g$ ~: R9 Y( N- Frewriteengine on
2 y: ]0 [) ^5 drewritecond %{HTTP_HOST} [^.]+\.域名\.com$
) j2 h1 a% A. [: \4 @3 u7 L0 t3 jrewriterule ^(.+) %{HTTP_HOST}$1 [C]
. J' L6 M0 }+ T- R1 W5 Z. {rewriterule ([^.]+)\.域名\.com(.*) /$1$25 n* a/ j9 @$ k
其他配置文件8 H- k/ W1 }3 j: y! f
+ ~- g, }3 u6 S, d: \; m接着在DNS中开设一个泛解析到对应的IP地址。& a0 B7 P% T3 C# S" x; Z" |
就可以实现下面的方案。2 A1 ]3 z, ^+ E! Q
! j L; ~. M9 a* S6 R
域名:domain.com
! ~! J% N0 A g+ M$ c( ~绝对路径:/home/domain.com/2 m8 Q7 O- \+ E7 f; u. ^
www.domain.com 自动解析到 /home/domain.com/www/; D5 A( y& l4 J% X: q# M
abc.domain.com 自动解析到 /home/domain.com/abc/2 ]; W5 c3 f, h0 c) s' E. K" N; m5 M
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
/ I: f+ ~5 B! }2 X6 h% r7 s直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|