标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
& q* W$ L# f5 A6 Z3 D# x# a+ V
+ r2 M' m! N' V
RewriteEngine on
4 l8 `+ I# B; O z! ]0 q
RewriteMap lowercase int:tolower
3 k8 A$ ^0 D/ }4 v* @8 W, C' c
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
+ d: K, m: X' R+ G- W* |
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
$ H- m: T" y2 F: l7 j( J0 K/ ^0 d
RewriteCond ${vhost:%1} ^(/.*)$
( N& S- n* Y) k+ B5 v2 z
RewriteRule ^/(.*)$ %1/$1
5 u& r2 q( x/ ?
, e! L9 R1 b8 P$ a& N
. k* T h; }; u9 {. v
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
R' C. X+ d! V- \. |* @6 w" H
然后,在这个所在路径的目录下创建一个文件: vhost.map
' K# m3 k2 D/ j! }$ M" G+ x
内容为:
' u, V J% X5 @/ a; q5 n0 [
$ S( F& @, s* R6 k4 g9 ~
www.domain.com
/usr/local/www/data-dist/domain
# e+ @9 P$ g' d: ?% b# |
bbs.domain.com /usr/local/www/data-dist/bbs
{4 w+ ?4 V+ {8 ` J/ Z: k
anyname.domain.com /usr/local/www/data-dist/anyname
) m- l* J3 T: \; P$ f3 k( @
- ~. {- C, K. Z* n: F
以上部分都是:” 域名+空格+绝对路径” 的形式。
. c" @& [% n e1 M2 k" ?$ m! Q
% |$ R4 C2 d/ f4 t) g4 c
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
# a1 i! S5 L& } A
domain , bbs , anyname 等等,理论上可以无限。
' q) W3 {( Q# c$ v- @& m
" N! E1 B% ^" T7 k0 E; U' g4 N
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
+ c7 ?5 `, h. M; S. Q b! n
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
. [+ X0 [ ` u8 n% z3 N
: m* s$ e2 I1 F3 g
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
/ L3 L6 P# j3 s, I/ f
第二步:打配置文件尾部加上
- N4 Y3 W( X V2 r) N: q
RewriteEngine on
( I) J. Q O4 ~& c4 W
RewriteMap lowercase int:tolower
: @+ \7 P8 R* U a+ B/ l+ f2 |" [
#定义映像文件
2 `. _/ K3 ~; B& N
RewriteMap vhost txt:/apache/vhost/vhost.map
; u0 w; P& e: E6 Y' `2 k6 f+ _
#处理变名
+ W+ l( Q! G6 ^7 Y
RewriteCond %{REQUEST_URI} !^/icons/
$ t" p2 t. g; c y4 g4 _& @$ n
RewriteCond %{REQUEST_URI} !^/cgi-bin/
% ?& J- T+ w* O/ v- V9 H1 v/ V
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
0 {4 d5 _5 I, F- \: W
这里做基于文件的重新映射
n; ]1 W8 Q3 k# B; d3 \ P
RewriteCond ${vhost:%1} ^(/.*)$
) I! V) z# W$ O
RewriteRule ^/(.*)$ %1/$1
+ }& X' K% K% M
RewriteCond %{REQUEST_URI} ^/cgi-bin/
) ^0 o" X7 r; z, q/ d! u
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 m3 K$ _% O( o! D5 u' z
RewriteCond ${vhost:%1} ^(/.*)$
8 {8 @& v+ c# ~4 p& E6 {# p
RewriteRule ^/(.*)$ %1/cgi-bin/$1
5 F; N0 }) P8 f' N0 Z
& m$ y) q- e% F7 p/ S, n' r
注意:vhost.map文件是域名和空间映像的文件,格式如下:
8 I* N+ V( [' Q! u1 u0 i; W5 e! X
www.abc.com
/vhostusr/www.abc.com
# _. d \% Y- {7 ~& @5 S: T
www.xyz.com
/vhostuser/www.xyz.com
. Q% d: y; f; |7 H( ?3 @
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
* E& t4 p l) \/ S O/ f
.
/ ?" E# ]: a# c( e) x; Y" C
.
4 ?' a3 O' k1 R6 s }
.
0 y% J4 @6 L$ U# ?
.
8 H7 L& s! M) |: k& ^% J/ k
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
' \9 W5 e, O" X
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
z" @. k3 M; q( b8 \) V
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
3 O+ z! C' J( C2 H
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" A& o8 N6 {2 q: E1 s$ N
==============================================
+ `, f6 h, [ U2 w# s+ y4 G$ T7 X! a
方法二、
7 R# V4 [5 z! T5 g. p5 N
* a4 ]" o) u& c; f/ k$ {
M2 w1 \5 y% x" E
rewriteengine on
9 R/ ?; f% w+ c) }
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
B0 w7 [4 ]1 j. d
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
5 A! j" n" \3 N3 N3 @; `7 t
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
& }6 d0 k: D t: z& I* S
其他配置文件
" S3 t4 _: {. y( N( `" Z T7 ?
" ~5 q; W5 b1 \( b4 R1 W
接着在DNS中开设一个泛解析到对应的IP地址。
, {1 j \ Q9 q% y, r
就可以实现下面的方案。
2 C# u% l' ?. B+ _0 E3 @+ z
, B& N: l5 b7 E. C
域名:domain.com
" f7 h; S1 Z" a% I: e0 I0 l
绝对路径:/home/domain.com/
% ]! i! o1 L) ~* \# F7 [: f8 h L7 r
www.domain.com
自动解析到 /home/domain.com/www/
, {8 b6 B$ e! V) ?; P4 ?" z
abc.domain.com 自动解析到 /home/domain.com/abc/
! q6 v+ K: f0 P
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
4 b/ O0 `$ I% U: m
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2