|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:% ]2 ^! ?0 {7 u$ z9 j0 |7 Q9 c
v9 g( W8 X. y) V nRewriteEngine on
4 t) T0 {: ~. x! J+ q+ f2 s8 mRewriteMap lowercase int:tolower3 j( |6 V0 Y8 q8 x& k
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
: @% U- e+ H; j; I2 ]" {+ N7 CRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
/ o3 X$ E& m- \ W& y5 ^2 VRewriteCond ${vhost:%1} ^(/.*)$ u0 Y( d. @' Z" |
RewriteRule ^/(.*)$ %1/$1
. Y/ }/ j# ?* {) N! ~8 Y2 T) W1 K1 d1 z& r. @
7 D7 t! r a5 s# D* o( ^/ v
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
; y/ {* [1 K% W2 z" |0 f然后,在这个所在路径的目录下创建一个文件: vhost.map' p' ?! O" \7 V2 a# V6 F
内容为:8 Z$ i& F* s1 a2 Q# @5 B* K
$ @& R& S- d" b
www.domain.com /usr/local/www/data-dist/domain0 J& }2 a5 v4 W0 F; R9 K% o, {/ R ^% ?9 \
bbs.domain.com /usr/local/www/data-dist/bbs- e4 C1 U9 [( J; G2 o9 r
anyname.domain.com /usr/local/www/data-dist/anyname+ M0 u) p- p) L" Q! z% ~: T
8 h* H, B" B$ k以上部分都是:” 域名+空格+绝对路径” 的形式。
, W! V3 r* n; F2 l, @6 F; K/ b, W" }' q! ?) b J E5 e( A
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
1 Q% q4 {8 m, |6 R; b) X, o. }9 n3 Ddomain , bbs , anyname 等等,理论上可以无限。* j! G$ Z0 v. q/ W0 V; @
/ Y) _( f+ Z; ^8 v这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以: |& A- J+ K/ e6 o w
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
+ [' j, E& D9 L) G/ L! l! U/ d3 \. K! P8 ^3 N6 u9 {0 Z
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。( M/ m% h3 _; k6 x5 v% k: i
第二步:打配置文件尾部加上% k4 @: N9 ?6 d+ U( n% `
RewriteEngine on
2 K; v) B- F1 M" P$ s+ _- a& M; gRewriteMap lowercase int:tolower4 t. k* q% l& h" h* h$ x; o" r
#定义映像文件
: j9 a7 y5 J0 X6 |! NRewriteMap vhost txt:/apache/vhost/vhost.map; ~ c5 x" w- v
#处理变名
6 I$ o M, n5 y: F. R/ e, q: Y fRewriteCond %{REQUEST_URI} !^/icons/" }, M: c3 B0 p, X
RewriteCond %{REQUEST_URI} !^/cgi-bin/
& ~: e9 V' r% FRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$7 @7 m* }1 |) h* M/ S) j7 Z7 _
这里做基于文件的重新映射% j7 T' N( b# X$ e2 i
RewriteCond ${vhost:%1} ^(/.*)$
( Y8 p/ f, k2 n3 g* xRewriteRule ^/(.*)$ %1/$1
$ K( W) s+ [0 [" L8 KRewriteCond %{REQUEST_URI} ^/cgi-bin/
+ P% P6 Z& M6 i6 \! mRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
' `& B X( Q: D9 O* |' _. R0 S! DRewriteCond ${vhost:%1} ^(/.*)$1 Z: w: k4 b: t, e+ p
RewriteRule ^/(.*)$ %1/cgi-bin/$1- L* I; O: J1 z, Y
; W" s( `& _$ j ?- H% C2 O注意:vhost.map文件是域名和空间映像的文件,格式如下:
5 H* P; m( k! V; V2 u: [5 q( xwww.abc.com /vhostusr/www.abc.com
- ~3 P7 I! `) i3 xwww.xyz.com /vhostuser/www.xyz.com
. r; u; U/ E2 K1 O5 ^2 b9 Kwww.cccbbbb.net /vhostuser/www.ccbbbb.net
, B/ y8 D1 t1 |/ c' u I9 N- B." z0 C8 l, `, b5 j$ C/ O% D
.
$ G0 w$ @9 \9 A, y$ B; C9 a.- z5 Z6 v3 k5 }" j% \$ s
.
9 v: q6 j1 K) ~! @(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
: D6 E$ d6 O" V' [1 t第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
$ s2 C1 }. R8 L2 N5 e4 L其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
0 Z1 s$ |( x3 H) _$ h; b注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
+ Q0 X. |" j& S" t) u) D$ n==============================================
, a8 K& t& Z/ d& ^8 \" U8 S方法二、) C+ y, _6 g0 K$ B5 |/ r0 ?8 c; a
& t0 Z: A$ L9 |" u, C' f' S9 H7 W, i/ X6 c% `3 y" o
rewriteengine on
2 H4 l, e, X' O( m; _rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
6 O% F; [; B8 W$ ?( ^ @" N$ c* ?" Erewriterule ^(.+) %{HTTP_HOST}$1 [C]
8 V& R; y0 z* M D E9 L& Qrewriterule ([^.]+)\.域名\.com(.*) /$1$2+ n9 j* @& F# `2 Q1 ]
其他配置文件; v" O! ~) H0 K# C# ^9 y6 P
7 s) Z/ ^; L( q# V$ D+ m: ^3 z( \3 e
接着在DNS中开设一个泛解析到对应的IP地址。
! W8 u- r! I8 x1 M- ^' r就可以实现下面的方案。; O' I8 B+ M! }
8 [0 r" K8 B7 T) b域名:domain.com# I3 \5 x/ R: E4 D. f; q( X& h
绝对路径:/home/domain.com/
5 R3 W0 Z6 ] bwww.domain.com 自动解析到 /home/domain.com/www/& }) n: q# A5 t d/ E
abc.domain.com 自动解析到 /home/domain.com/abc/
! V; F6 e9 {; g1 ?等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹3 M; w' D: _0 J# p9 B
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|