获得本站免费赞助空间请点这里
返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
7 B; m9 X; _% P) V- V7 p  v. _  l2 O5 T* E& L& R- L4 {7 n" ~
RewriteEngine on% [2 x" b% M' X+ J+ J( H. `$ N
RewriteMap lowercase int:tolower
" `4 M& I+ L( V( M& H4 }- t0 J3 SRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
/ l* U: G- ~! J! \) j$ N* K$ cRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$! E; c! Z( O" W9 f9 @! q  `4 S" R
RewriteCond ${vhost:%1} ^(/.*)$2 m+ \% X/ ~2 R9 w3 J/ w. d6 H1 [2 Y
RewriteRule ^/(.*)$ %1/$1+ z( p4 H# h& x2 b2 ]0 m- m' @
2 d; U2 w( e" Y( A+ Z+ I  ~: `
% {  h$ J- }% g2 H
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。( x# |; x% v3 S+ y% [; ?: {
然后,在这个所在路径的目录下创建一个文件: vhost.map
, ]% K/ `2 ?( f5 P( w内容为:
* p2 v2 Z# v8 b3 p9 \# r# |* c( S' y4 X' P. a, w. q9 ^
www.domain.com /usr/local/www/data-dist/domain' F- v$ i8 a7 e% D: G  S
bbs.domain.com /usr/local/www/data-dist/bbs5 I3 p% M+ @0 D# X
anyname.domain.com /usr/local/www/data-dist/anyname' m. u8 B+ v* h3 A

+ H4 C9 A4 Y& v& |4 d4 ]: M- D以上部分都是:” 域名+空格+绝对路径” 的形式。
, R3 t+ n2 y, W9 M3 H( Y+ G: h; ]. k$ ]. l' ]+ _( e( A- b
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:  V; H& r7 h4 T. D& G
domain , bbs , anyname 等等,理论上可以无限。
& X% C; t9 O1 S$ D0 W* G# Y' G0 m
, R% K3 Z- O: I& V) T* b这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
2 a  r8 p5 c1 m+ D5 @9 f2 i2 G& ^) W" s随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
+ p3 W. q2 d$ ?" H) N% G
8 @6 i" K$ l( s, M7 C  T第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
  J1 n3 N* f$ u# y第二步:打配置文件尾部加上8 `  c* Q9 r: F! \
RewriteEngine on, ~& J* n2 l" A# G% ^
RewriteMap lowercase int:tolower# A% r, o5 E! P. ^
#定义映像文件
8 K9 i7 c  L- V) ?: Z0 J( ~" `RewriteMap vhost txt:/apache/vhost/vhost.map
) d# p4 T+ C; }, g5 f( n#处理变名* H0 S0 W1 r" ]! m
RewriteCond %{REQUEST_URI} !^/icons/  d# @( f# e# |  c7 D! z- T
RewriteCond %{REQUEST_URI} !^/cgi-bin/
1 J+ g! ^* A7 z, E! a5 r, p1 F/ }" K; cRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$. n" h5 h7 K8 @, k" Q( H0 {/ f
这里做基于文件的重新映射
, [3 I8 _7 {$ Q5 }, FRewriteCond ${vhost:%1} ^(/.*)$3 Q" u1 b8 D( q$ V% U. i# v6 e! ]! A
RewriteRule ^/(.*)$ %1/$1
# \: _: D, B: hRewriteCond %{REQUEST_URI} ^/cgi-bin/
& m4 g- x, S. @9 ZRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$( w% `* g5 [/ B: u) E
RewriteCond ${vhost:%1} ^(/.*)$
# g! k# V- J' R# h" q8 ZRewriteRule ^/(.*)$ %1/cgi-bin/$1
. Z4 j0 G' E+ F4 g0 t$ `0 Q) }
2 f5 Z3 e3 r/ S  Z5 C注意:vhost.map文件是域名和空间映像的文件,格式如下: 
8 H. {5 \- e! E2 Uwww.abc.com /vhostusr/www.abc.com
1 b$ v7 g6 C; ^www.xyz.com /vhostuser/www.xyz.com
9 |- r) S0 l. e: H+ awww.cccbbbb.net /vhostuser/www.ccbbbb.net' i6 S. |/ c9 x' d$ }% h) I
.$ I; H: P# I3 F# p- U5 ~4 J
.
) t; M8 j* I8 P, X2 [/ k.
- \$ b5 ^. ^& a* e4 j9 O. [; S.7 x$ q  I0 H# q
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)* Z! e" Q: F: j) }
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~, A  Q4 e4 ~! b& a' X
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~5 M$ g- J, P- `
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~$ L- H2 D8 ], q" k: r) Z
==============================================
. [* @; Y- {$ R( O" c( O方法二、4 i4 s1 f+ B) d
) W% R! x( S& L4 ^
9 i4 F& e3 d9 g4 I
rewriteengine on
% G+ w" W# k4 G. _7 Krewritecond %{HTTP_HOST} [^.]+\.域名\.com$
/ v& Y' j3 N" I! ~rewriterule ^(.+) %{HTTP_HOST}$1 [C]
2 }$ q/ {& a5 ]- Y5 rrewriterule ([^.]+)\.域名\.com(.*) /$1$2
+ @, o) S0 l# a) d其他配置文件
0 U- W$ |6 Y4 F) F9 F( }( g$ z
3 m0 K5 N  P' ~' ~# Q- ]/ k接着在DNS中开设一个泛解析到对应的IP地址。. s4 c# t' g- _5 w% y$ |/ C, x
就可以实现下面的方案。$ E, F. _+ K: `+ c. v# G; ^( d
, l7 t- M3 f1 d8 i6 e! n$ z
域名:domain.com
9 n; ^6 a6 n5 x1 ]! U: t绝对路径:/home/domain.com/
  ?! ]# {4 s  _! Z0 Kwww.domain.com 自动解析到 /home/domain.com/www/
, `! q1 i" J0 p' g; ~0 ~# Zabc.domain.com 自动解析到 /home/domain.com/abc/
- G1 c5 _& F1 U  |; G; Y等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
8 N% N1 b5 N# S4 f2 D+ D直接建立子域名名称的文件夹即可使用。不需重启apache。

返回列表
【捌玖网络】已经运行: