|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
+ K3 n; V) c" Z& t1 o6 B' ^8 G8 K' |" ?4 h5 j
RewriteEngine on+ w7 h/ |+ p, |( S8 K9 U
RewriteMap lowercase int:tolower
0 n, i- R2 g- B1 n( l3 S" ARewriteMap vhost txt:/usr/local/etc/apache/vhost.map
, _3 ^+ f/ \' j. m/ W BRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
5 I( M: u* U- S& `RewriteCond ${vhost:%1} ^(/.*)$& P2 m! p- S0 ~6 S
RewriteRule ^/(.*)$ %1/$1
8 K& ~& T& A3 }/ p$ W0 {4 } m+ Z- g. o) E- G
7 r7 v( A* P; {( F* t2 ~其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。2 @7 i9 q* e' Q- V8 y) m/ ?
然后,在这个所在路径的目录下创建一个文件: vhost.map
0 ~. j) b2 h) w# V5 o: \8 h( i& `5 n内容为:
8 O3 B3 a8 r+ [& U; `5 ? j m, e4 I; w% c
www.domain.com /usr/local/www/data-dist/domain9 |5 W0 U6 z u$ s
bbs.domain.com /usr/local/www/data-dist/bbs8 ^* F% r" K2 y8 n4 ?
anyname.domain.com /usr/local/www/data-dist/anyname
e3 x7 W# h' A6 }4 A* g" u _! `4 d- k, ]
以上部分都是:” 域名+空格+绝对路径” 的形式。
- O$ y" N: j. @5 W9 Z* [
z& }) w5 ~. K3 ]7 B L" f; |最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:: P2 _5 a+ C& c4 s1 l: j
domain , bbs , anyname 等等,理论上可以无限。
; M* k x, ?: D, k* \3 d7 f
8 p+ Q. q- d4 @" I( p: c这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
9 u" M/ i; u! I% Q6 i随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
! F& B* u; P. `6 Q: b9 D! }- M' k4 M, {
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。9 `- {# X% k3 ]4 [. t3 l
第二步:打配置文件尾部加上1 K9 k: i, l: p- }
RewriteEngine on
) m7 [; r5 k3 t4 xRewriteMap lowercase int:tolower, M% z( `* ?( m) M" i) Y) @8 l* h
#定义映像文件9 Z# ^' ], f6 Z+ [/ I) v9 A C# r
RewriteMap vhost txt:/apache/vhost/vhost.map$ ]* Q" B* r( l; Q
#处理变名- C5 F: o4 g1 @2 G* b9 N& q$ r
RewriteCond %{REQUEST_URI} !^/icons/4 J. F; h; S1 w# W0 r! _9 H- B
RewriteCond %{REQUEST_URI} !^/cgi-bin/
. ]) l, e2 c ]# }) pRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
. G" L9 k; ]$ M这里做基于文件的重新映射6 |" n+ A) L6 x
RewriteCond ${vhost:%1} ^(/.*)$; p5 B; v+ j/ e; t& d: x5 l) m5 N
RewriteRule ^/(.*)$ %1/$12 \/ i- D, j+ V* N3 O4 b* ~
RewriteCond %{REQUEST_URI} ^/cgi-bin/; o1 }* {$ @: ?- D" T
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
' B& W( U2 X; i, W' b/ \RewriteCond ${vhost:%1} ^(/.*)$% ~6 n1 t; g3 }# q. c
RewriteRule ^/(.*)$ %1/cgi-bin/$1# `# G0 n }8 Z: X" d2 ?' @
9 X& Q# \2 [5 ~: p* I
注意:vhost.map文件是域名和空间映像的文件,格式如下: & R- q& A5 F! X
www.abc.com /vhostusr/www.abc.com! |# a$ S# x I h3 F
www.xyz.com /vhostuser/www.xyz.com6 I; i! J1 y7 g9 N2 R1 T
www.cccbbbb.net /vhostuser/www.ccbbbb.net# `& H5 x0 x! u5 f0 W- u; D; s' o
." e8 _" H0 Y" Q8 Z% G
.* e/ q n5 Y' D& O
.
6 ?7 i% I+ H/ z: W0 u- t.
2 Y. m4 n, o1 ~, u- L. U(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)# Z! }2 [4 j$ k( u& V$ W
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~- z8 y1 f; s3 j5 { @# E. d, O+ l
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~3 p+ i3 D7 D$ g9 L
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" A# Q1 o( ?% P- y6 C==============================================
w. w8 K5 W( U( m' a方法二、" J' M7 Y+ C0 S. r1 V) l( S( ]% D. M
- z Z( p5 o# \3 k, M' i! d6 a8 @1 P! {- G
rewriteengine on
" B/ t% x) b1 O3 T3 qrewritecond %{HTTP_HOST} [^.]+\.域名\.com$
( V4 J! c1 Y' P; G4 erewriterule ^(.+) %{HTTP_HOST}$1 [C]# n' w$ T* c% H1 d
rewriterule ([^.]+)\.域名\.com(.*) /$1$2$ f* S& R( E# w; _" F
其他配置文件) X: R4 j0 D0 }5 M9 V% U
% y1 U# V8 g3 W4 d
接着在DNS中开设一个泛解析到对应的IP地址。
7 m1 [$ U! a( }. c" c; x就可以实现下面的方案。
$ v. i4 |0 A% W6 H* {
0 s/ p" R0 h8 F* B域名:domain.com
1 j* f0 d2 T4 z; m绝对路径:/home/domain.com/ ^0 i$ {7 E; ~! a2 R5 J
www.domain.com 自动解析到 /home/domain.com/www/
5 D- x8 r. [% ^2 T p/ g# fabc.domain.com 自动解析到 /home/domain.com/abc/
, E. X# h9 _. a ]) c等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
) R, `' M% j. L# y" H直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|