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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
6 j8 C' L6 h& {$ w7 d" X* D
" A% W! ^# E5 e/ L4 c$ b( Z/ ~2 Z1 xRewriteEngine on# G2 _2 V4 Z/ t8 M; h
RewriteMap lowercase int:tolower
+ N! V3 G/ x- F6 f2 mRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
# a4 D, \8 w  E, Z% H4 N- ^0 C+ o  DRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
- G" @6 r# a( t4 G. P6 T  t0 RRewriteCond ${vhost:%1} ^(/.*)$
) N9 f6 |' Z3 i! K8 ^. p, DRewriteRule ^/(.*)$ %1/$19 ^2 j: X. I3 K8 r' S" i, q0 V
; ?: z& }* D. m4 e% o  Z
& p/ X4 D& x7 m: U: {
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。/ ~9 m# w/ A* g9 d
然后,在这个所在路径的目录下创建一个文件: vhost.map
; @+ r- c; T2 i  h: w内容为:* L: X) }4 H4 i% n/ F( W& C
% ?  l+ {. D& Z/ _) p+ J( }5 f! W
www.domain.com /usr/local/www/data-dist/domain+ \5 N; b8 P% L
bbs.domain.com /usr/local/www/data-dist/bbs
1 \5 @( Z4 a) Y$ F3 r) y0 K: X$ ^anyname.domain.com /usr/local/www/data-dist/anyname( l2 a1 @  H$ B4 u4 W! Q0 _
' z# C" Z8 I5 f/ o
以上部分都是:” 域名+空格+绝对路径” 的形式。
+ Z  h3 R0 J1 T7 ], j( a, c1 l5 z6 K3 {' F" p1 o, {
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:2 x0 r: d# t" b3 U/ ?& r- {
domain , bbs , anyname 等等,理论上可以无限。
: r2 x& f  Q, k" C: a- J, A$ y) Z  W! r
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以, H6 f( A5 ~' [: e0 E3 n" n
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
7 N' S, ^+ {1 r: f# F7 X! O/ J
  b+ o, I2 Z3 B1 u5 a: p' d" n第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
7 V1 N  R9 o, P2 d: y第二步:打配置文件尾部加上; _* d0 y% s0 m4 H' v, C' F
RewriteEngine on0 @2 i+ @+ G) }; x+ Z
RewriteMap lowercase int:tolower* v3 L) m( U& m6 I5 n4 D# m0 \8 ^. `, ]
#定义映像文件
$ t% B+ z  i# q0 A& bRewriteMap vhost txt:/apache/vhost/vhost.map5 M/ V  F. e3 T# j( c; }+ I
#处理变名+ k7 f, @9 q+ W. p# a# P$ I4 f
RewriteCond %{REQUEST_URI} !^/icons/5 X8 U3 V, z" m& s& x6 T) q
RewriteCond %{REQUEST_URI} !^/cgi-bin/) H) p& o) x$ u/ C3 n/ \2 e
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$3 \% C3 E+ H( Y
这里做基于文件的重新映射
5 V  I0 P1 E* q3 b) ^+ r+ Q! gRewriteCond ${vhost:%1} ^(/.*)$
2 o* i& i" {' Y9 jRewriteRule ^/(.*)$ %1/$1
( d8 d' R/ E* J; c/ gRewriteCond %{REQUEST_URI} ^/cgi-bin/' ?( w, j" E6 Z. b7 C( m
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$" p% x5 T' \) \4 ~% V
RewriteCond ${vhost:%1} ^(/.*)$
8 ]* d" V* `% C6 v. bRewriteRule ^/(.*)$ %1/cgi-bin/$1' z. i' N& S+ i

* z# l3 P* K, w$ a* u注意:vhost.map文件是域名和空间映像的文件,格式如下: . a5 }. q4 L( A) c; R
www.abc.com /vhostusr/www.abc.com
  q9 u# F) e# _' {0 f( Q) l3 Twww.xyz.com /vhostuser/www.xyz.com
1 ^, p; P# O2 p' P+ E; @9 vwww.cccbbbb.net /vhostuser/www.ccbbbb.net
! H! o, L  \* k.
# B: h: k7 P* y* ]2 b2 w! `7 j.
  \& H# v$ U$ v.
9 G; w& d3 Z% @.
9 S+ p5 D8 ^# N+ i(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟); K3 S$ b5 P% z3 N0 L6 a: ]
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
- o# a4 \' H4 Q4 X其实这个可以用php脚本来完成的,很简单的~~呵呵~~~; I, t9 m/ Z" ^% Y- M) ~& ?% i
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~) z- Q4 ^9 M3 n2 G! y
==============================================
$ h$ ?' M& U; a5 {# F方法二、
( {: @/ x* S. g; \% P; H+ I$ j- t
. l+ E9 q* }6 e$ R
" K3 M- J* w* n0 t) I+ vrewriteengine on, B' F3 s* }* o- H. u
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$1 d2 p" \( ]- B0 ^& h' m
rewriterule ^(.+) %{HTTP_HOST}$1 [C]) H! Z/ ~3 T+ y1 k( X
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
  Z6 Q' _* f1 s5 a' F3 A+ {" J  v其他配置文件
6 q$ C0 m8 i' `7 d) p3 T
; r: y  ^  O4 l接着在DNS中开设一个泛解析到对应的IP地址。
; s+ q% q7 ~( L. H* x就可以实现下面的方案。
6 `% M4 P) e% n8 V# s$ |1 ]& l# }: C+ o* B: e& |* c" P' F  @
域名:domain.com& l9 n2 C2 \* D, j" x
绝对路径:/home/domain.com/
1 s( k; d. U! Q- R! L, n, vwww.domain.com 自动解析到 /home/domain.com/www/6 j8 l2 v- {0 c$ S6 _
abc.domain.com 自动解析到 /home/domain.com/abc/
) {" o; M* Y* n等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
& |& n0 D) `9 I7 ?2 |" Y! g2 o直接建立子域名名称的文件夹即可使用。不需重启apache。

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