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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:7 }1 I* R8 a, S4 h8 J
9 W8 L) {4 R( o3 U9 T2 j$ d
RewriteEngine on
0 E. u. H+ t& yRewriteMap lowercase int:tolower
' t5 t; T. i* N) r, r+ DRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
3 j" c& [/ M9 R9 I+ FRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$, k4 _8 a7 Y$ ?
RewriteCond ${vhost:%1} ^(/.*)$5 [, |# h5 Q( Q8 J$ o+ l
RewriteRule ^/(.*)$ %1/$13 Q7 c( a0 g% r3 `# z! k- s
8 r- k4 t6 Z. s

( V! \) b8 _5 x; c其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
, n3 ?6 [4 D8 c- i: x" q8 I然后,在这个所在路径的目录下创建一个文件: vhost.map8 q/ M! F5 A+ _
内容为:
) l0 o1 Y- u( K4 \: O; U$ n! c7 _) X# D# Y, {( P; p9 E$ I3 n7 e' ~
www.domain.com /usr/local/www/data-dist/domain: t2 y- `4 \. n7 |' g/ w6 k
bbs.domain.com /usr/local/www/data-dist/bbs- H( C8 N2 E' f6 }1 g
anyname.domain.com /usr/local/www/data-dist/anyname
+ {% i5 _+ _( X& y- y
9 u, h2 U5 V$ [以上部分都是:” 域名+空格+绝对路径” 的形式。# ^" p8 U( ^+ D$ {7 _9 W

5 v1 F: _+ k& w3 J# G& O$ U6 |$ ^最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:7 X, ~% c4 _2 v- W  }/ V
domain , bbs , anyname 等等,理论上可以无限。
2 V3 f# [% |% T$ I3 C" {+ H2 z: B1 h1 ^5 V0 x+ b
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以3 w- G1 R& Y% Q+ I& X+ l6 \$ X
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
$ J; w* C7 E+ J0 Z3 ^! M# g' l1 m5 E: ^
1 X. f1 \- T9 Y2 W' S第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。4 {) ^3 N: m6 ]
第二步:打配置文件尾部加上
2 B4 J' Y( P6 e- |7 D# `) HRewriteEngine on, l( H4 x/ i5 V: ~) g
RewriteMap lowercase int:tolower
3 X: j% S( j* h& R7 l% h#定义映像文件
6 e5 ?. O# S! T% n, ZRewriteMap vhost txt:/apache/vhost/vhost.map5 l, ]- V7 b1 c: i: N9 M, `8 q
#处理变名
8 s; i) m; K8 S+ s: ARewriteCond %{REQUEST_URI} !^/icons/
# O( ^9 w$ l; f$ A& f" HRewriteCond %{REQUEST_URI} !^/cgi-bin/" x* g, A2 q7 u" x; ^) m# a
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 T7 ~- o) V4 q' L* x
这里做基于文件的重新映射
* I1 T+ @; N0 }$ H# s$ zRewriteCond ${vhost:%1} ^(/.*)$4 P: O- M/ {3 n; t
RewriteRule ^/(.*)$ %1/$1
/ j( s% {3 g( [  i. P. u2 {( b, ?RewriteCond %{REQUEST_URI} ^/cgi-bin/
' S  t. c* h9 a) \2 C( a. Q9 cRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
" t, K8 M1 l2 G7 L; u5 c' z$ FRewriteCond ${vhost:%1} ^(/.*)$
* G+ V- D- t: F9 k4 {6 O% I) HRewriteRule ^/(.*)$ %1/cgi-bin/$1
- ]5 @3 Q  \3 K7 _; s: y( f6 @" g: |# I! T0 [. W
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
% \2 b/ z1 L! T% O& h4 fwww.abc.com /vhostusr/www.abc.com
0 l; P2 c- j* V) f$ \% p- Uwww.xyz.com /vhostuser/www.xyz.com
! M) ]4 h5 u5 vwww.cccbbbb.net /vhostuser/www.ccbbbb.net
! d, h) P3 U6 T7 J# z1 G- R.
; \" v* N0 Z6 Y2 K0 F.. g; g( D$ n/ G5 c
." i, ^) ~' {+ t1 t2 [6 }* V
.8 _  i9 g1 N' M# P0 D6 |
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)& D7 J# f- O% m9 E7 Y+ p
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~8 }! Q! C6 a, ]7 M' j7 ]
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
3 k8 \( I8 J- n3 }+ U0 r5 Z注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
3 m6 u( n2 q/ Y( z2 v5 a9 P4 z==============================================
3 `6 v! @. f6 Q: E. [7 U方法二、
' G) p3 q. d- f" s. h. s; b: Z+ y/ O. E9 L  {: F6 O6 P

+ y6 k6 l8 u! W. P, U/ lrewriteengine on% Q, ^9 L! _6 \2 @
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$8 b, o& ~# _7 o$ n1 P. _- M
rewriterule ^(.+) %{HTTP_HOST}$1 [C]7 F# N6 X; _+ H4 L" E% u
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
6 J; u8 U' H4 t& L+ s7 E  |9 N其他配置文件+ V- v5 K* d: j4 ?# B8 ]

" q1 Y" I# r0 ^# Y4 u接着在DNS中开设一个泛解析到对应的IP地址。
$ v8 Q8 D( a: ?! A就可以实现下面的方案。( h& e, `, J; z6 o; ]( a, j1 J
8 ?, L7 @  }* ^1 M! T- I
域名:domain.com
; T% ]8 m  e$ ~5 ^7 r9 c) y) t绝对路径:/home/domain.com/
- i( j- i% A# Kwww.domain.com 自动解析到 /home/domain.com/www/$ t" n9 o& A5 C8 e3 e- ?0 p
abc.domain.com 自动解析到 /home/domain.com/abc/
# d3 L. z$ H7 g; x等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
$ t6 o5 j" Y; I- O: S3 [直接建立子域名名称的文件夹即可使用。不需重启apache。

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