|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
( u. K- @( f% d5 a4 ]/ \: D) `0 E+ q& U! C9 ]
RewriteEngine on8 A6 W3 ^2 g% E G- t2 Z* }5 K% P
RewriteMap lowercase int:tolower- x; c5 k2 e9 u+ C
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
8 [3 `# T a9 v: a: p9 n" ]* I' hRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$8 [, n# @3 _1 q: ?8 m
RewriteCond ${vhost:%1} ^(/.*)$" Q8 y# v7 o& `, ?) k+ |. f
RewriteRule ^/(.*)$ %1/$1
+ J5 |9 v8 ?( p9 s7 ~$ e
' x4 @' B+ _- x+ B! |. k; d+ n: A; u4 B/ F/ K% q: f
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
" m1 _8 Z* C7 \然后,在这个所在路径的目录下创建一个文件: vhost.map0 E8 ~0 C, | _& T! D
内容为:
- x; z" P* ]. f: u5 L& v" s+ n2 C4 {* c0 w- Q6 R/ V
www.domain.com /usr/local/www/data-dist/domain) A+ L' A3 r% Y1 h
bbs.domain.com /usr/local/www/data-dist/bbs
; I/ m. Z7 @/ w- Oanyname.domain.com /usr/local/www/data-dist/anyname
z4 k+ j) p, i4 q% ?; T: Z5 X& I/ ? \3 I1 b- o: C u- c
以上部分都是:” 域名+空格+绝对路径” 的形式。
k2 r4 ~0 \% w; Q. L( x+ N6 m8 Q
) [% _ @ m9 T, s7 j5 P最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:9 U9 T7 ^) O* v
domain , bbs , anyname 等等,理论上可以无限。3 P! q3 N) }5 O. S0 V
4 A$ B3 n' j! ?7 L* b$ ?- W! h
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
. C1 R. C4 T, D o9 e1 A6 O随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。/ M1 f2 j+ ~, F' b. f. R
( d' y3 _) S( {! m$ v第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。4 Y$ h% m p/ H- g1 C0 X0 V& L, f# r
第二步:打配置文件尾部加上* H3 K9 L/ X# `( R5 x' ]# E
RewriteEngine on
2 y: N: \/ Q1 L& G7 q" ?# S1 d# t% cRewriteMap lowercase int:tolower' O& ~; D. U/ H8 t' U% x
#定义映像文件
/ c5 r/ I6 `+ D* m/ dRewriteMap vhost txt:/apache/vhost/vhost.map+ Q) K/ B. t/ Y- F2 v' i
#处理变名% W4 X4 f& l- R/ @$ v
RewriteCond %{REQUEST_URI} !^/icons/
. C& v8 i6 D" z7 K" _RewriteCond %{REQUEST_URI} !^/cgi-bin/! U& r K/ h3 u5 L
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% y& |2 e# Y9 Z+ P/ F5 j2 z这里做基于文件的重新映射$ A5 }+ ?: X' o
RewriteCond ${vhost:%1} ^(/.*)$
8 {/ D _0 F. @; ^$ zRewriteRule ^/(.*)$ %1/$10 {7 n6 V3 y$ ~ r& B2 r
RewriteCond %{REQUEST_URI} ^/cgi-bin/) q" T4 w! c( A4 h" g U$ r: y/ {
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$; s+ j) x. ~/ ]4 a- ^5 o
RewriteCond ${vhost:%1} ^(/.*)$
) ^7 P) d( q/ g* Y5 \) ?- ]RewriteRule ^/(.*)$ %1/cgi-bin/$1& ]7 ]# w( i: T0 s0 X
5 N8 w/ M5 n# c% |% j" L3 q注意:vhost.map文件是域名和空间映像的文件,格式如下:
6 |% \6 K+ N( R- p9 Owww.abc.com /vhostusr/www.abc.com @' d1 @3 ~/ J6 G* y- K
www.xyz.com /vhostuser/www.xyz.com
4 H/ Q e9 j0 @# }4 xwww.cccbbbb.net /vhostuser/www.ccbbbb.net
- {6 b0 ^, o, o$ A.
: I" q% \8 M9 l" W. E% `, F.
7 G% t0 ]5 y1 D.
3 D4 J" w0 C7 T" N* y6 s) i.; N7 O0 B" e( c% l
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
* E8 \- Y% X+ ~/ l5 `. ?9 B第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~( L9 i" L7 A3 V t; v
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
7 h. T3 [- y7 z; Z9 X8 d注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
) h0 d, M8 P7 H5 M7 `5 X==============================================- ~- C/ D2 l% y1 E% ?+ X4 P/ u" ~) }
方法二、
. L/ c9 a2 n* g, T( i
7 F1 G; J7 l2 A$ G
8 I/ r) ?) ~( j% w% Frewriteengine on
# ?9 B' U. v) N! D1 W7 crewritecond %{HTTP_HOST} [^.]+\.域名\.com$
3 K/ K9 |! G& `8 Crewriterule ^(.+) %{HTTP_HOST}$1 [C]: T. A9 ]9 \# _3 i& K. g' r& Q, x: i& f
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
6 T( W' \) I( U2 z其他配置文件' R6 q7 f0 ?6 J- |
$ q* @4 G" @* U. b
接着在DNS中开设一个泛解析到对应的IP地址。
+ Y4 s2 r9 r$ G就可以实现下面的方案。" T0 t$ l3 O: H* T. {' M7 w- F
8 D5 G1 b) ^7 R; K0 x0 r
域名:domain.com4 i# H% e% ]" b
绝对路径:/home/domain.com/
* k- ^9 T% A4 I5 Z; C' V- { Twww.domain.com 自动解析到 /home/domain.com/www/1 g2 S, _ U' K' J
abc.domain.com 自动解析到 /home/domain.com/abc/+ s; @) E+ L# I
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
% Y/ [0 T& ~( K直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|