  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:* ~! x, {) _# r$ i) C' e" H
( c, }4 X# B9 Y. u
RewriteEngine on6 g! @4 V7 D: E3 Z0 N
RewriteMap lowercase int:tolower9 O& T2 x/ M- {9 D' |# N# C
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
3 y/ ^0 Z; ^6 y. @' _( d5 D+ W! vRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$# ^, e; U T% u
RewriteCond ${vhost:%1} ^(/.*)$9 A G* S8 H; A' Q# @) D
RewriteRule ^/(.*)$ %1/$1: J3 @ w5 g2 O. C8 k: `# o6 c
* T" I8 v U. A5 ?4 F8 H. R
/ G+ k7 s# {( j& y* ]其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
8 U( ?* f# G4 |8 ~! T" c2 `( `然后,在这个所在路径的目录下创建一个文件: vhost.map0 a" m! o' J: u! p) G
内容为:
7 i2 ~- m. s- I$ q2 J) c: S: Y
" h8 a B, e- O3 ?www.domain.com /usr/local/www/data-dist/domain
2 P7 B+ O4 M# tbbs.domain.com /usr/local/www/data-dist/bbs3 D. H% x9 u7 z G4 G: k+ L. f
anyname.domain.com /usr/local/www/data-dist/anyname
: x4 m6 `7 [& q
1 @; [* E& [+ ^以上部分都是:” 域名+空格+绝对路径” 的形式。0 K1 c8 Q4 W$ |6 X/ k5 n
# G5 L7 ?5 D. o+ q/ }
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:$ r: }& n/ e L- a0 M# o" w F
domain , bbs , anyname 等等,理论上可以无限。
4 f! L! s, {# `1 {( t& e( O1 ~7 J' q4 G! b% U
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以' |/ U3 z& o; y2 f5 F, ^6 O
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
8 c* k% x- e* u9 V0 c1 k( B, A4 P1 E! u7 e2 C
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
4 ?0 y+ r w+ G第二步:打配置文件尾部加上9 m! E G: K x. ]
RewriteEngine on
4 Z% M( a& O4 iRewriteMap lowercase int:tolower
% w2 y( M2 c) ^7 d# x* E#定义映像文件
( u+ Q3 b6 f" KRewriteMap vhost txt:/apache/vhost/vhost.map
2 Z4 J$ d/ Y$ w* _. P#处理变名
% u% I; {) q( @RewriteCond %{REQUEST_URI} !^/icons/
4 U/ f8 U4 t$ R2 C: ~- Y* ?+ I& WRewriteCond %{REQUEST_URI} !^/cgi-bin/' E/ O" y$ k$ q0 C
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$9 z* r% o* @+ H. U" c9 G+ i) J8 E4 N
这里做基于文件的重新映射 E% W& O' c5 m9 w: G, _
RewriteCond ${vhost:%1} ^(/.*)$
/ b* j% b0 d/ oRewriteRule ^/(.*)$ %1/$1' {. O! r; M& f' ] M; `& W
RewriteCond %{REQUEST_URI} ^/cgi-bin/
: K/ _) n( r4 ARewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$6 R+ z' r0 W4 e. @! k
RewriteCond ${vhost:%1} ^(/.*)$
1 ] Q3 T. Y/ F% u+ H ORewriteRule ^/(.*)$ %1/cgi-bin/$1& w2 n+ }2 Q% s8 J( J! q& w3 u+ o$ W
. t0 v5 L1 l1 D. z' w( b6 p
注意:vhost.map文件是域名和空间映像的文件,格式如下:
( g! H% g2 O9 N5 d# _8 Z# w \www.abc.com /vhostusr/www.abc.com5 q7 `, ?# Q- k8 A6 F/ v% K
www.xyz.com /vhostuser/www.xyz.com9 {: ?+ H, x! V. [9 X9 Z
www.cccbbbb.net /vhostuser/www.ccbbbb.net1 p2 ^7 C0 G9 F: h" R
.
' E0 A+ T N+ L @( f.8 _' I+ M" s" l l* g$ f2 R
.5 }7 G+ ^7 x$ ?% R4 M& ~9 C8 y. h5 L6 A
.$ I) {4 C3 { E3 f
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
$ U7 e6 j! G- u; f第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~% B6 X# p$ d/ b* f: a, [
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~7 `( @. C+ H( H6 R, L& \5 e
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
) n0 Z! m; @7 y9 [6 T3 i==============================================
' F+ y' b! Z4 l' j- Y2 u方法二、, D6 P- j" j: C) T# D8 t& L
0 l" _- x( J- \5 z
( n9 h$ B5 P1 qrewriteengine on/ c( Q* }. ~2 m* p: \/ l
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$5 o$ t3 @) C v" ?7 @3 n5 T
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
+ R' F% L1 S+ j8 Frewriterule ([^.]+)\.域名\.com(.*) /$1$25 h! z, t, ]. r" j0 Y4 Z4 n
其他配置文件: k- O$ R" ^& V% |: L# I9 G% M
2 M j# _% W! i
接着在DNS中开设一个泛解析到对应的IP地址。
* C0 J& ?- W" {! f# G就可以实现下面的方案。
+ U5 u5 d! G, F; Y+ n& i$ d0 t3 ?3 d% M4 C
域名:domain.com
* R- e1 j8 K1 |. H3 K, a" e8 k) M绝对路径:/home/domain.com/
# E# s0 r. ]: f! M) dwww.domain.com 自动解析到 /home/domain.com/www/% n: l {- ?, r# L% X
abc.domain.com 自动解析到 /home/domain.com/abc/( q. h' I$ v$ ]
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹! e# l4 T& B" _7 {5 w% D: f
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|