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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
- |/ W* ^. x2 E- K- ?2 e9 @' u0 p
RewriteEngine on7 L* Z# T; O7 d2 m+ z. S
RewriteMap lowercase int:tolower
1 v' q: D8 h" o7 Y' C! A+ d# I) yRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
' Q4 l- E2 C  J4 FRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
0 d# c) [  p# N- y+ p7 {- BRewriteCond ${vhost:%1} ^(/.*)$7 Z# a' S% ?1 k. S5 A; b
RewriteRule ^/(.*)$ %1/$16 i, e! x2 d. |9 }

4 A) a% t% L& r. w0 M8 D. T* I1 t; Z, Z# z# Q8 [; ?* q
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。, d# T( @: c7 }4 w- \8 E: h7 C3 l3 k
然后,在这个所在路径的目录下创建一个文件: vhost.map
. A+ u' Z& s. P2 b2 t内容为:
+ ]  ?9 E0 r! b1 F
5 I" L+ I3 V" D! Wwww.domain.com /usr/local/www/data-dist/domain2 v' h, E8 C1 H" w. [5 L
bbs.domain.com /usr/local/www/data-dist/bbs
# j, v' w3 U  x7 Uanyname.domain.com /usr/local/www/data-dist/anyname' u+ Q, f% O7 D) Z

# T( _8 ^+ ~6 Y6 [8 P* p2 i1 X; b以上部分都是:” 域名+空格+绝对路径” 的形式。2 X7 P0 l7 n. o- I' V

* ]! ?+ [0 b  M# Q, |最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:3 l3 e7 |! S  ~0 U' {+ c% w
domain , bbs , anyname 等等,理论上可以无限。3 i8 A8 o: g8 b( W$ ^

+ N, u! d8 g  F2 ~. p8 _4 {这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以/ k+ u9 m& S+ x* u/ E
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
+ e, {5 ^1 C8 A  t- a/ Y
1 ^! m: B0 N/ P$ ~7 B; O0 W/ W6 K! R第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。% b2 z+ F, X3 l# z+ H' I
第二步:打配置文件尾部加上: p8 x7 [: q) q; C. V7 K
RewriteEngine on
) _" o) `3 a$ O/ W$ ]/ p. C# hRewriteMap lowercase int:tolower
1 `. r( P, m, {( {7 }/ Q- v& Y, ?#定义映像文件3 |6 k; P/ ^, f3 x* v! }/ m
RewriteMap vhost txt:/apache/vhost/vhost.map& ?1 c* S/ Z! ^. _* V
#处理变名( _2 H0 i; m- \5 N
RewriteCond %{REQUEST_URI} !^/icons/
3 B: R" e: O0 b: ERewriteCond %{REQUEST_URI} !^/cgi-bin/
& O5 H* i7 }: f0 f% p. p2 aRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* t* S. O. ]: z2 |- {这里做基于文件的重新映射
# E8 s: a: N. Y3 E9 P5 ~RewriteCond ${vhost:%1} ^(/.*)$/ a; H0 q6 c8 j, ~* M2 i& E/ r& f' b
RewriteRule ^/(.*)$ %1/$18 c" t- k% o: x2 m
RewriteCond %{REQUEST_URI} ^/cgi-bin/0 N: e/ ]. e0 Q- Y/ _8 ]
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
% S0 [$ n  M4 V( B# O& IRewriteCond ${vhost:%1} ^(/.*)$' ]+ f( ~& f- u1 _/ |
RewriteRule ^/(.*)$ %1/cgi-bin/$16 }( ~2 _- j+ e' A( Q# g
  w: A) j  F0 y8 @
注意:vhost.map文件是域名和空间映像的文件,格式如下: 3 n% ~$ v8 V( E9 ^* g9 q
www.abc.com /vhostusr/www.abc.com
0 w; g$ `: a: F; F+ vwww.xyz.com /vhostuser/www.xyz.com
9 L$ j' @( T/ d3 U5 f" Awww.cccbbbb.net /vhostuser/www.ccbbbb.net5 e& c2 K0 y: M( @! b
.
6 b; B3 \9 L5 X; E( F7 A.
0 C, U  s6 P" V  h* o0 q.8 \. b8 n8 l9 b+ [* j
.) N$ `* ~) [: k
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)4 h5 Z9 u: T& p: m# R! F( o4 v
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
/ O6 R3 j& R, u其实这个可以用php脚本来完成的,很简单的~~呵呵~~~( `' R: N7 ~: o) l) S% k3 E2 S
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
1 |6 \' j+ q% ~==============================================
# d4 h1 V! t3 x- L5 l$ K. N方法二、
# ~3 b9 r3 l. f! T/ }6 p
2 p9 [0 ~" f# ]* T, N3 w' i, t5 P4 _
8 _5 V6 z3 ?; z3 {5 H3 p4 Grewriteengine on) P; a. `2 A! P( o$ ^) Z, c
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$% h7 k) l' p( L
rewriterule ^(.+) %{HTTP_HOST}$1 [C]; t9 C: C7 r- N) s& t. P7 Q# R
rewriterule ([^.]+)\.域名\.com(.*) /$1$2$ \/ y0 k( ?3 @5 t- V0 _  J! V( d
其他配置文件! ]+ P4 r, r0 E! e# k" K! O& R

1 U: o& j& _! u/ j: t) V4 w接着在DNS中开设一个泛解析到对应的IP地址。( J2 S& a+ B# C' m2 K& |
就可以实现下面的方案。* I9 f/ f# ?" ^" N5 Y7 s* p
1 O4 `# G. {& M2 b1 j; k
域名:domain.com
# ~/ {1 z+ b" e绝对路径:/home/domain.com/
# P) k1 u; d  ~0 Wwww.domain.com 自动解析到 /home/domain.com/www/4 `+ R1 Q% U- V3 X# x2 Z  t2 ~8 |
abc.domain.com 自动解析到 /home/domain.com/abc/; c/ _) R# O( D* ]$ q; {$ D, i' o
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
9 v( V( y  O0 S) w- t直接建立子域名名称的文件夹即可使用。不需重启apache。

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