  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:. c4 e. Z S- |) q
4 F8 W' \. ~/ ?! w, E
RewriteEngine on
7 i( z3 X' T v; BRewriteMap lowercase int:tolower
4 g2 h' s7 R, a2 ~) r# KRewriteMap vhost txt:/usr/local/etc/apache/vhost.map& V$ {3 s2 Y+ V$ }* t' C: S `
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
: m f& ~7 b8 J2 U9 o! p% IRewriteCond ${vhost:%1} ^(/.*)$: j6 N0 N8 a) U2 |' C( A3 t0 _+ X
RewriteRule ^/(.*)$ %1/$1
" v# z; O: t- R' u. O, L7 ?) |+ Z7 Z6 ]% u6 ^" F3 y7 O; e
1 J" }$ o) R& T) @8 n& m$ S其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。( z& B. y2 t0 g1 Z( {: @ S
然后,在这个所在路径的目录下创建一个文件: vhost.map
% L# T* A4 X2 r Z5 O内容为:
' ~0 x- H5 @& W1 n9 K, W4 |' s2 |
4 C9 H$ \/ W0 ]! D Fwww.domain.com /usr/local/www/data-dist/domain
% f+ v9 m f, f* zbbs.domain.com /usr/local/www/data-dist/bbs
P3 I6 O0 ]0 a2 Uanyname.domain.com /usr/local/www/data-dist/anyname) e1 _4 e8 n( d
/ ]' i5 y7 S4 S% k# N- ^( A# ~
以上部分都是:” 域名+空格+绝对路径” 的形式。/ R" u/ L, O) b2 i6 v
. m$ f6 H1 c6 i2 F8 o3 X
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:+ v f1 I, W, [' { ^/ @8 w
domain , bbs , anyname 等等,理论上可以无限。+ i; ~8 E6 B, x# j2 s) z
' ~/ t3 ?- Q8 U7 ~这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以+ H z& z- i7 }, v. e. K! @
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
0 w1 c9 l; d! F1 x7 z
0 @7 [; H3 P9 O第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。: a, b1 ~8 ]. k+ w) w# _) ~8 W
第二步:打配置文件尾部加上
; B( o z5 H% t: N k$ |RewriteEngine on
: }5 R; Q; w( T( A$ k9 zRewriteMap lowercase int:tolower
$ A6 Q( b: b2 L6 ]1 @#定义映像文件
* y- ? J) R- \* g% pRewriteMap vhost txt:/apache/vhost/vhost.map
/ }; N* R9 A3 B% R#处理变名
+ ^. h+ N' j. P7 o; mRewriteCond %{REQUEST_URI} !^/icons/
! |* ?+ r2 x2 }3 k# s7 v, [% G* l, cRewriteCond %{REQUEST_URI} !^/cgi-bin/
4 H. \" |9 t& [& |RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$2 p2 d+ z3 y# s8 @
这里做基于文件的重新映射. y" B b7 H- G. y. j" ]0 H( G7 C
RewriteCond ${vhost:%1} ^(/.*)$
4 A0 a6 S' u( U8 ORewriteRule ^/(.*)$ %1/$1
% \ \% D' L5 l' f' t" Y$ A' }, U8 A/ ]RewriteCond %{REQUEST_URI} ^/cgi-bin/+ k# Y% w7 _. x1 {7 F
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$3 W) W [4 b+ ~0 y. J8 `
RewriteCond ${vhost:%1} ^(/.*)$
' n4 ~3 d; t5 S6 B5 YRewriteRule ^/(.*)$ %1/cgi-bin/$1
; W* J/ i/ Q4 I# D4 |3 T& L; i! k9 T5 Y# p
注意:vhost.map文件是域名和空间映像的文件,格式如下: $ b* _4 j' F; x: p) a X3 {
www.abc.com /vhostusr/www.abc.com
8 @$ Q! s H1 \9 H+ Nwww.xyz.com /vhostuser/www.xyz.com
5 q) V0 P: l3 v( [' ?www.cccbbbb.net /vhostuser/www.ccbbbb.net
5 i& L: {' L9 u1 S( X. O8 A0 }5 ^( e.3 q% M- }8 j t3 _: O
.
7 F3 h( C+ t6 N" E' G.- B3 m5 c! \/ w. R. X/ @; R: g
.
* w% w8 ^, b9 B- ^(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)3 I$ H1 t! |) m& R
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
& f p3 W( M4 T- C3 D; X) x0 m其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
- d) n# E, h4 c0 o& u B# u% u注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
' @6 z4 n3 P: P& [==============================================
8 W5 L8 r) b/ {' ^. ?- W方法二、" ] N4 r+ U- }9 X
. l8 v; f Y+ b8 E' m( f4 U" k
6 d e' q. k* C+ }6 B) f8 R
rewriteengine on
4 A; Y5 ^/ q0 M5 o7 _# J4 hrewritecond %{HTTP_HOST} [^.]+\.域名\.com$
% V! C; e+ Q1 e |/ arewriterule ^(.+) %{HTTP_HOST}$1 [C]
+ V5 r! b, l0 urewriterule ([^.]+)\.域名\.com(.*) /$1$20 G: U. W" v$ E8 ?
其他配置文件
, |- ?, [2 |( o, Y/ H- t
}: K* J! \) }( G- N接着在DNS中开设一个泛解析到对应的IP地址。9 }4 {: X7 _& u3 g
就可以实现下面的方案。" N0 r1 ^8 P; d! g
8 X7 z4 y; ?& {0 I
域名:domain.com
' H7 L7 p- [& V绝对路径:/home/domain.com/4 Z* z C3 E$ G- X8 [& o
www.domain.com 自动解析到 /home/domain.com/www/, W3 N: C$ O8 b) Z3 u+ b0 i
abc.domain.com 自动解析到 /home/domain.com/abc/
t8 N7 l' ^, R# {& ~等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹8 \" Z% a- D' m) e
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|