|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14387
- 金币
- 2479
- 威望
- 1647
- 贡献
- 1427
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
9 E; B) F& [: J2 `' e
# f5 b) [. N/ a' {( }% i" KRewriteEngine on
/ A/ n5 a# H1 w% n' I! DRewriteMap lowercase int:tolower9 |* J5 a: t2 V, J: _
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
7 h k2 @3 P* x2 s' VRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$6 m: c- w- O, V; J$ J
RewriteCond ${vhost:%1} ^(/.*)$0 o" R8 l+ d: o. M
RewriteRule ^/(.*)$ %1/$1
7 U; q: R) Y7 D+ A4 g( u1 }# W: Z* Q5 X1 u4 M# z$ j% H) S
# g% H, ^7 Z4 i* q6 L其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。/ i/ }1 k {0 Y' s
然后,在这个所在路径的目录下创建一个文件: vhost.map( Z' R. k1 r4 C, x! M
内容为:. u4 |1 z3 p; a1 w" t
) R8 V* _4 k6 L; D4 |# \www.domain.com /usr/local/www/data-dist/domain; R' u4 l! Y* M
bbs.domain.com /usr/local/www/data-dist/bbs
: t4 F( M# e% t4 Q6 Ganyname.domain.com /usr/local/www/data-dist/anyname+ J1 `: c7 [5 _6 H
* a& X d8 f! b以上部分都是:” 域名+空格+绝对路径” 的形式。8 o4 ?5 W4 E! P3 T# E
@8 k7 M! r2 T* j2 C: ~
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:. n6 n& M4 u. _" }. R V: z9 o
domain , bbs , anyname 等等,理论上可以无限。' @* z0 P# K% w! F& w
" ^5 Q @4 \5 b. @2 q9 C0 y7 B) X
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以. W3 F! i9 |( _' H
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
9 K! Q+ \8 T2 q1 C5 u, P% j/ i
: {& V3 C) ^+ z3 s& ^1 k, g2 p第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。! [8 t: k. d$ X, o
第二步:打配置文件尾部加上5 L# e8 @4 c A" G% M
RewriteEngine on+ K8 z' v6 c+ h6 @) R( X. ?
RewriteMap lowercase int:tolower! l" @4 k6 D, N6 o
#定义映像文件2 d. _4 @" W, Q0 U
RewriteMap vhost txt:/apache/vhost/vhost.map
. }, \; A; M0 K6 q& v' e' v#处理变名/ i0 x) Q \% G1 n9 ^* A$ o
RewriteCond %{REQUEST_URI} !^/icons/
, M4 n3 D# `& |# _RewriteCond %{REQUEST_URI} !^/cgi-bin/
2 N) s% Q& {% z; ]0 Z4 sRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
+ U# A9 L9 r8 m5 l4 G这里做基于文件的重新映射
0 m4 ?* h% J6 ]1 W6 ORewriteCond ${vhost:%1} ^(/.*)$
2 S+ t l: ~6 ]# d% q4 `9 y0 nRewriteRule ^/(.*)$ %1/$11 z1 c- M1 {6 k$ U3 C
RewriteCond %{REQUEST_URI} ^/cgi-bin/
" Z3 W" H& K3 a/ O# R9 V* BRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
, ?4 i' ]/ X- Y( `2 g# f% v6 y, l }RewriteCond ${vhost:%1} ^(/.*)$
3 I1 q4 ?0 N6 M1 j+ a8 VRewriteRule ^/(.*)$ %1/cgi-bin/$1
. b/ {3 h" D6 v/ ]2 S) X
: Y1 _% s7 a1 e. ?注意:vhost.map文件是域名和空间映像的文件,格式如下: 6 ?: E& Y% t: S( H1 V
www.abc.com /vhostusr/www.abc.com! d4 @- U4 g5 G
www.xyz.com /vhostuser/www.xyz.com$ r% v5 q8 }' |) ^$ Q( J
www.cccbbbb.net /vhostuser/www.ccbbbb.net
6 m! i; x, t8 C" |) @, t9 a- n.
. e4 f- i3 Y( [- m.4 |+ \: w3 f! {- y) {
.
9 r. X6 f; g1 u! d! W9 c.
6 z3 m3 l2 N- u(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
1 m% J6 E; q8 z4 p$ r1 W第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
' p/ _& F: ^& p8 L* |' Q V1 S其实这个可以用php脚本来完成的,很简单的~~呵呵~~~$ j9 l; q) L) A- G2 j2 Z; ~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
4 s" i! m5 [& E==============================================5 m( A3 m+ |8 ~8 \5 a7 j
方法二、
2 K5 g! A% s# ]7 a( l: E! n: Q; A
2 E) ]6 j' v7 z5 K3 F* ]1 c6 j1 y. c
rewriteengine on
, M, R& \4 y" orewritecond %{HTTP_HOST} [^.]+\.域名\.com$, N: Q) n4 u2 }5 I- q( w. Q9 c
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
% ]( }1 g, J$ V' S, B" h) `rewriterule ([^.]+)\.域名\.com(.*) /$1$2
- Z, C* c; b( Z+ E. e8 B其他配置文件 f$ O$ f8 W% g& M# S% Z
]2 Y/ ? |- N! ]% D8 m7 v
接着在DNS中开设一个泛解析到对应的IP地址。! K9 f8 \- d: s$ R! N- t0 g8 c: L; H$ B
就可以实现下面的方案。/ q$ k- @4 x& s* y9 Y
) _3 K% J% l; d域名:domain.com% G9 }( d! A) I2 Z
绝对路径:/home/domain.com/& Q& D# y/ r. d( k1 _/ f" M
www.domain.com 自动解析到 /home/domain.com/www/
5 G. n8 \7 N* {9 {abc.domain.com 自动解析到 /home/domain.com/abc/8 X7 j; l$ f; f2 {
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹( f }4 n/ b; d+ Y* Y
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|