|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:9 i" n: R6 O' J6 E- A+ y0 s l
) y# v8 y x* [) N3 {
RewriteEngine on
/ M1 d& {( u; H% j9 WRewriteMap lowercase int:tolower) d+ Z1 ~! d ]: W9 Q8 F/ ^2 t8 k# ?3 U
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
! l' y. Z1 v4 T8 P* NRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$% d+ O5 z$ R$ v" o8 [1 `
RewriteCond ${vhost:%1} ^(/.*)$/ d# ]' A& u. J! D7 [
RewriteRule ^/(.*)$ %1/$1
, E' L) P3 _( v3 V) f, I$ m5 y: c6 t; B- C
' l" J$ Q. w) h/ ~* n7 y F4 ^
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。# n% m0 l6 @, ?. e# x. B1 n
然后,在这个所在路径的目录下创建一个文件: vhost.map
. C' x3 k- @5 G/ H/ P$ W内容为:3 w* J( O M2 a; Y ~; H7 p
: \: x8 M/ J0 g1 \- }3 n+ P
www.domain.com /usr/local/www/data-dist/domain
( R- g: w9 r& ]4 V0 Mbbs.domain.com /usr/local/www/data-dist/bbs
; r; O" P, F+ p( U$ B Uanyname.domain.com /usr/local/www/data-dist/anyname! n4 u' _$ `# P$ y! d1 [" U2 n
/ D7 w3 B2 k, f' e3 `3 y7 `% j
以上部分都是:” 域名+空格+绝对路径” 的形式。
* _- P5 p) a' Y) ^" W3 p7 W. j
! |, O8 W7 G2 i最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:/ m, ?& l. i* X; r* f
domain , bbs , anyname 等等,理论上可以无限。5 ]$ g+ ]& R2 l, R: c, J
8 d. p+ C+ S* u这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
* X, X9 @0 ]" O' `: n4 y5 X随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。# Y& } K# {; k% v1 j
6 D6 q) t, m/ J Q- F
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。7 k( ]2 V" S# `2 E/ N
第二步:打配置文件尾部加上/ @0 q% d7 V- d
RewriteEngine on1 S+ W2 |( i' B, u
RewriteMap lowercase int:tolower5 M0 o5 _4 O" Y# C/ e
#定义映像文件
" J; Z( n# R6 v, G1 \RewriteMap vhost txt:/apache/vhost/vhost.map
0 s# W" w% h+ x/ @+ D#处理变名* x9 g+ Z& }; l F3 e9 k7 l6 P
RewriteCond %{REQUEST_URI} !^/icons/
- x7 u/ d7 f0 B* X' ~7 t7 U& DRewriteCond %{REQUEST_URI} !^/cgi-bin/
! N4 c6 ]8 b- M' ~. _RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" n; j$ ?# P& b
这里做基于文件的重新映射
9 \3 ^7 e) S) L& NRewriteCond ${vhost:%1} ^(/.*)$
9 M. K8 b- L0 w* p, f& V2 oRewriteRule ^/(.*)$ %1/$1, e2 X8 {# Y1 F9 Q4 d9 W$ i
RewriteCond %{REQUEST_URI} ^/cgi-bin/+ s- ~6 g4 F+ |' F
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$; I3 K9 K6 S7 r* [# o
RewriteCond ${vhost:%1} ^(/.*)$
3 `& q1 I' h0 M& z: e& ]- KRewriteRule ^/(.*)$ %1/cgi-bin/$1% X. q) N( w( Z' B1 U3 o
3 T8 j8 O5 U2 t
注意:vhost.map文件是域名和空间映像的文件,格式如下: . }6 c0 t3 d/ i6 O, j. z$ g) g
www.abc.com /vhostusr/www.abc.com3 `. j% v+ M9 w: k* C; k6 o- A
www.xyz.com /vhostuser/www.xyz.com8 ?$ K1 n, Q6 V/ g2 \9 @8 ~
www.cccbbbb.net /vhostuser/www.ccbbbb.net- I6 z o2 C* H# l! U
.$ ?8 _% w1 l# a, B i
.- t+ W0 Q% h" b, K7 r# `# o1 t9 G7 |
.2 H5 `+ o# [( J
.
( x7 ]4 ` }/ D2 h1 J* L1 F(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟): Z. ^/ h/ A$ G( T3 E& L
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
% e" A6 ~8 Y$ w其实这个可以用php脚本来完成的,很简单的~~呵呵~~~' R/ ]1 Z, r8 V! R( `6 E, \
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
. H. p& q: V6 b' D: e# Q8 [# X: z==============================================
. i# z" ^$ c. a: r0 e方法二、3 d/ u0 S8 q% d/ C
0 {8 R$ {# i5 ]5 D7 j
" n$ j- x0 }1 b/ l0 l
rewriteengine on6 V2 A: j# b: m8 @
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$% v9 {" }- e+ ^ E
rewriterule ^(.+) %{HTTP_HOST}$1 [C]9 j; w% X9 ]# D W9 W2 ~: ] ]
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
2 ~ N2 t; o1 v v: B, n% T: c% T其他配置文件$ L1 S' a, q5 e. W
! N4 E, Q8 C0 }8 h
接着在DNS中开设一个泛解析到对应的IP地址。
8 c6 n9 ?: X$ m% u3 G) }就可以实现下面的方案。2 ]8 \7 Y8 Z2 Q! ~* P# Z+ G
( k' H4 ^. s" l t
域名:domain.com" I1 F. w3 p. g2 X |% F, r& V
绝对路径:/home/domain.com/& a l, [" D6 g
www.domain.com 自动解析到 /home/domain.com/www/0 u2 A. Q. B! H* u$ d9 {2 d
abc.domain.com 自动解析到 /home/domain.com/abc/6 G |% T& H e
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹! ~1 P' V% K a- H9 r2 c- H
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|