返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:9 x, Y+ j% e# n, n# H
8 e6 ^8 {! w- Z4 f! V
RewriteEngine on: A: h3 y% |2 w! p8 g! X
RewriteMap lowercase int:tolower' `( G9 h: ]8 E
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map- o% q, z. }. H1 J- i
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
; t6 D  C( x. c+ B: DRewriteCond ${vhost:%1} ^(/.*)$( ?- e& }6 R7 ^+ W( [1 J; q
RewriteRule ^/(.*)$ %1/$19 f% b- `2 E! S% |
; I' s6 L4 S+ u

7 f& `8 G7 c, N4 ^& P& k其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
- y& H2 Q/ g, k/ V1 }1 U7 b' g然后,在这个所在路径的目录下创建一个文件: vhost.map) X- M2 N3 M+ O8 a
内容为:
8 G: A* K0 n& ]: k* |
  s/ t! w4 d' n5 b" n; p! Ewww.domain.com /usr/local/www/data-dist/domain1 g& s- l) p6 W4 O3 w$ S
bbs.domain.com /usr/local/www/data-dist/bbs
8 H& `! o2 ]0 lanyname.domain.com /usr/local/www/data-dist/anyname
! [4 j! y% m9 p1 Z1 e4 W
3 p1 H: Y2 o# f6 O- m! o  b以上部分都是:” 域名+空格+绝对路径” 的形式。" G% [/ J1 x4 L* X
) o4 c0 c# W, F1 F/ s' z# b6 r
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
/ P: J! w; Y) E& [1 a+ S- l3 bdomain , bbs , anyname 等等,理论上可以无限。
6 f  v5 U" n1 A3 v2 B% |2 {/ J
- I5 M# {# Z% Y0 h7 N& }这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
" T$ ]* O* I8 Q9 g% l# J' K随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。3 B4 u3 ^# [+ z# W$ X% F9 \

8 j  `1 o7 v! g8 \! N& v第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。5 \: r( [6 C8 }% Z
第二步:打配置文件尾部加上- y% D/ w6 y0 a
RewriteEngine on* a# j0 N; c/ j
RewriteMap lowercase int:tolower
) |( N' E7 z! W7 N# y: V5 ]# G#定义映像文件
! q4 u  A5 S# r! O; W, C- YRewriteMap vhost txt:/apache/vhost/vhost.map% s! x' ^) L8 t7 W  G' ~0 {
#处理变名
  y0 T  ]' g6 j' hRewriteCond %{REQUEST_URI} !^/icons/& P2 o+ [' A; u+ u% x
RewriteCond %{REQUEST_URI} !^/cgi-bin/
( T  m0 H. z" i% T/ bRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
( X+ d! q5 ?; d: z7 Y: O这里做基于文件的重新映射; J& C  A. K+ E4 N& O5 }, y5 l
RewriteCond ${vhost:%1} ^(/.*)$
: C/ i/ _; j6 uRewriteRule ^/(.*)$ %1/$1% n& T( r( T0 g7 o' u/ e
RewriteCond %{REQUEST_URI} ^/cgi-bin/
  A1 R3 t! \. T' L4 fRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ }8 n- n" B8 z9 o. R% FRewriteCond ${vhost:%1} ^(/.*)$! f  l+ b- Y; M' l4 e
RewriteRule ^/(.*)$ %1/cgi-bin/$1
/ @% ]: d0 S+ t1 F2 j4 E6 ~, P9 f; ]' r& M9 Y2 F
注意:vhost.map文件是域名和空间映像的文件,格式如下: , S. W, e6 }  h) V, V
www.abc.com /vhostusr/www.abc.com& D$ E2 ]$ ~1 d. w/ D! E/ o3 X
www.xyz.com /vhostuser/www.xyz.com
2 |: h) x; _  ?2 j* n3 I3 wwww.cccbbbb.net /vhostuser/www.ccbbbb.net8 N- L; _6 G. d, X1 J) G) Y& N
.
% k& |+ }0 a; b% O) y* a' n." ?8 p" n  j3 j
.
( [: ?, e* _5 f) P% V.5 ^0 c+ K) S! N5 c5 n# A5 k0 U
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
6 X: K- b( A' W$ }& @第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~3 O1 V" ^+ `, K# C* j. a& f
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
  B7 u+ B( ~5 C- n注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~3 I+ b8 o2 l2 F( Y
==============================================9 v( u+ a1 z4 ~/ k
方法二、: i* I# d7 H# h* f: ~1 d4 }

9 p. B& r5 d! h; i1 B" e: K4 e" u5 A( s. R
rewriteengine on
+ `$ g0 B) Q! arewritecond %{HTTP_HOST} [^.]+\.域名\.com$% |, ]! h, a, q$ p" L) [3 R9 V
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
: C2 i, L7 w: T+ b+ m: Frewriterule ([^.]+)\.域名\.com(.*) /$1$2
7 B, J& q0 }; }# b) x其他配置文件
' V( [. `: U/ H4 m2 f  d, A* q+ b7 A' G2 `! h6 r! h( \# f
接着在DNS中开设一个泛解析到对应的IP地址。
2 u# G6 A# C! t4 n  |就可以实现下面的方案。6 ]0 J) Z7 M' f

7 x' d3 G) ~; I9 X域名:domain.com
; ]- P$ b7 L) T' O. Y" d绝对路径:/home/domain.com/
  w0 \; K. s' i, a+ E! Swww.domain.com 自动解析到 /home/domain.com/www/* x* U; ^7 z3 {) a
abc.domain.com 自动解析到 /home/domain.com/abc/, A5 }0 W! l% [4 }' i4 U! j
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹9 O3 i& b* G, i
直接建立子域名名称的文件夹即可使用。不需重启apache。

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