|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14441
- 金币
- 2506
- 威望
- 1647
- 贡献
- 1454
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:; B. F# z- c+ B* R8 ?8 n5 h
) B1 u# Z; r7 r( y6 B8 {8 o+ _/ ~
RewriteEngine on
, K* u! X, W, o* ]4 e0 |RewriteMap lowercase int:tolower& p; J8 L0 @! d, s6 I
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map2 e2 d* N9 b3 G& C$ _1 U+ A
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$+ Z- n# n4 |% I5 b+ F
RewriteCond ${vhost:%1} ^(/.*)$6 W$ e% P0 L8 ^
RewriteRule ^/(.*)$ %1/$1
3 R/ R% {+ ] N) R: Y- g. \3 J. x" s) a$ z+ d
L$ j+ ~# Y6 K- a7 T/ [
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。: t' \9 ?6 r+ B2 s H) |% S4 I
然后,在这个所在路径的目录下创建一个文件: vhost.map
8 ]/ F7 J+ [% C6 j- \) E内容为: j. D( K7 x4 d0 d
' x! ^" F0 m2 ?* @
www.domain.com /usr/local/www/data-dist/domain1 F% D, V1 G4 `. B( ]1 R
bbs.domain.com /usr/local/www/data-dist/bbs! o: \7 `( T5 f: e8 R2 p
anyname.domain.com /usr/local/www/data-dist/anyname
+ O; C O6 E( T! ~; R7 f( B" e' W) c/ {% ~6 Z7 B
以上部分都是:” 域名+空格+绝对路径” 的形式。
: E" Y! q, ?+ n* W* e0 ?* i; {5 y9 j/ o+ i3 a" j! _+ z
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
/ F n$ b! L9 } g0 w% B) _( Sdomain , bbs , anyname 等等,理论上可以无限。- h8 g' f7 D; y' J5 b. l1 x Q
3 u5 G4 K& T( `' e: }+ z
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
! M5 q/ K: Q, F+ f. r( u& f/ z随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
% Z2 ^5 e& Q# D3 m: l5 R' x
/ T8 A4 h( Y& w0 z- L5 W第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
; B( u% m1 x) t, Z第二步:打配置文件尾部加上
/ P6 |' Z5 `. c& xRewriteEngine on
. i/ _# _+ u% ]" }4 R% O/ @3 Q4 ~ WRewriteMap lowercase int:tolower
! V; g4 K/ x% ~ k, a. V2 j8 e#定义映像文件
/ `/ C3 e+ G$ u- H! @6 o+ RRewriteMap vhost txt:/apache/vhost/vhost.map. d: @( W; ?9 r- i; h9 ?' I
#处理变名
: j7 Q1 j J3 ?( r( VRewriteCond %{REQUEST_URI} !^/icons/4 Y: ]; G- w( u1 v9 \) M& |, ]% @
RewriteCond %{REQUEST_URI} !^/cgi-bin/
; e& ]! s: k2 E$ qRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
- _% Z! }$ k, o6 l) T: a. U这里做基于文件的重新映射
; r* a! F5 W* Q% W9 [+ k! d3 @RewriteCond ${vhost:%1} ^(/.*)$
% s4 v+ E3 O# _' S. y0 p1 ^RewriteRule ^/(.*)$ %1/$1
& T4 R+ j& J- a) T$ N0 u: |RewriteCond %{REQUEST_URI} ^/cgi-bin/
8 \. r( _. b9 {* N* C5 q, ~RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$+ j5 y1 x! }2 c
RewriteCond ${vhost:%1} ^(/.*)$" @) r+ h9 @7 {) O2 n
RewriteRule ^/(.*)$ %1/cgi-bin/$1
4 ^9 ~8 |: H0 c' j, v! Y8 G
{5 u9 M3 w/ B. k$ P2 I' j1 r注意:vhost.map文件是域名和空间映像的文件,格式如下: 1 `7 A% O/ o! n7 n6 l
www.abc.com /vhostusr/www.abc.com4 S) @& {$ J& Y" k
www.xyz.com /vhostuser/www.xyz.com- ?* k% J; c" s
www.cccbbbb.net /vhostuser/www.ccbbbb.net
! }, z! E5 S9 v: f8 E! G7 U.
y& p9 Q7 w+ ?7 T7 B4 ?8 x) l5 B.4 ~' g! z0 a! U0 n5 b, b9 n5 q" d
.4 K. W8 O3 v. \5 T9 W
.
& j! r* P3 x- Y$ W$ g( q5 q(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
2 ^+ T5 `* r5 R6 J# B/ C( n第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~, F; e. m* Z1 j6 x- H$ b& o9 R3 ~7 z* t
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~! M1 u, T1 M9 p) I1 \& g
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~; Z3 {5 @. T# ]: U. R$ U2 g
==============================================5 E0 X6 q" Y9 M1 {; u/ ~
方法二、4 V, o( D6 I" ~; J: ^7 z5 Q
6 |4 s( ` V1 ^5 \# h
! O8 i2 A+ U( V. D' s' mrewriteengine on( F! Q+ Y% }3 M5 h% d% U
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
9 W/ X" r( [4 m; q: ~0 S: t8 \rewriterule ^(.+) %{HTTP_HOST}$1 [C]
5 h+ y, [) h* z0 i |, ^ D1 p& Rrewriterule ([^.]+)\.域名\.com(.*) /$1$2, B2 V$ H1 o9 m, I; b+ e; o
其他配置文件
. H0 |$ C- r! S# c2 n1 b* R& _3 `" ^ U0 J s8 C! ]) O9 w
接着在DNS中开设一个泛解析到对应的IP地址。
% O' H. l d7 [% ~就可以实现下面的方案。1 { w9 v7 m5 i0 T& u# w
, Z, j( y' V. [, y域名:domain.com. d! H# [! b/ i
绝对路径:/home/domain.com/
' {/ c" U' s! \: U3 @www.domain.com 自动解析到 /home/domain.com/www/
/ W' e* ~$ Z' R7 E/ q) {abc.domain.com 自动解析到 /home/domain.com/abc/8 H1 K" ?# ~% v4 m- `
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹, N% F# w7 u2 r' `5 W3 x; B
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|