标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
' O9 K9 q: p4 q+ u# T$ I
+ x {9 ~! h+ [5 |# S9 K: Z1 u& Z
RewriteEngine on
) g6 g+ G6 K4 Z: V! [8 G) o1 a
RewriteMap lowercase int:tolower
& }' P6 L" y8 N ]( C" k1 R+ y. T
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
' C/ I; {- }" m% X9 T( Z
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
( [# I, q, J3 a+ w& V
RewriteCond ${vhost:%1} ^(/.*)$
" [/ N; Y- Y4 l2 o( X& {
RewriteRule ^/(.*)$ %1/$1
; e$ F/ F: L) H2 K; ?+ {
/ u# m* C9 k4 W3 t ]& G6 S
5 E% }; J5 j1 ~) ]
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
+ I9 {3 R* S: J. R0 N9 A' _6 \
然后,在这个所在路径的目录下创建一个文件: vhost.map
$ P' N( c1 `. T( Y
内容为:
) }& Y% |7 ~& |* l5 X
2 }$ d s* c2 q* V
www.domain.com
/usr/local/www/data-dist/domain
6 }5 [3 r/ H; J' g
bbs.domain.com /usr/local/www/data-dist/bbs
( [; b: a: q' F
anyname.domain.com /usr/local/www/data-dist/anyname
2 J5 R: `. t. C3 Z
/ W7 c p5 c! o8 C3 H
以上部分都是:” 域名+空格+绝对路径” 的形式。
7 T( O" g+ h3 b% a, }- I
$ M" o) d1 f6 O2 S
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
- S2 O2 a1 j) F& p3 ]+ Z7 d
domain , bbs , anyname 等等,理论上可以无限。
. c5 y: M# u" @
C; r+ \% ^7 t" n! q
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
' C/ K3 P9 r1 r% [
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
. s/ Y' c( Y1 U" ~, ]- Y; _ D
( ?9 O R/ E: O4 p, c* Z1 w; K
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
* T5 l2 w' ~& E5 Z
第二步:打配置文件尾部加上
: b( _3 G% B. X S# v4 r' y/ w
RewriteEngine on
! B0 ^5 ~, l4 m6 y# B0 T
RewriteMap lowercase int:tolower
9 F9 y" \* n. T4 R& ^
#定义映像文件
: S, a6 v' r' @6 \, ]& a% n
RewriteMap vhost txt:/apache/vhost/vhost.map
2 J4 O5 |, f t. s- I
#处理变名
/ O6 C+ x6 Q! b9 o5 K: W- _
RewriteCond %{REQUEST_URI} !^/icons/
' w. H) m$ a2 k# h
RewriteCond %{REQUEST_URI} !^/cgi-bin/
% M/ j8 x2 y1 z5 C
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
& ?% g0 q. B Q0 }
这里做基于文件的重新映射
m+ P& C3 t3 {! Q' L
RewriteCond ${vhost:%1} ^(/.*)$
1 r$ t' ]+ E' N) X" k3 t9 b
RewriteRule ^/(.*)$ %1/$1
* v; T& s6 |/ e" N
RewriteCond %{REQUEST_URI} ^/cgi-bin/
. i) S. H: a6 P t/ C/ b
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# B$ _$ @+ \1 B" o( q
RewriteCond ${vhost:%1} ^(/.*)$
$ o/ k8 b; `- v) V' Y
RewriteRule ^/(.*)$ %1/cgi-bin/$1
T- |% N4 V1 N2 {: K
9 S1 a: ^: l% D1 `4 k) |2 s& `
注意:vhost.map文件是域名和空间映像的文件,格式如下:
& c) i. k, k4 P8 `
www.abc.com
/vhostusr/www.abc.com
6 \+ }1 Z( ?" g l, r" t
www.xyz.com
/vhostuser/www.xyz.com
% e5 a7 I, w+ C+ T8 O A6 s, |
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
6 }: w# f ?" H% O
.
. E5 x: \1 p2 i0 A9 z
.
5 v! u, R. G. ]: j# F! Z$ M- N
.
7 \. {8 S3 g; t: I" i
.
# d6 k: s: i% `' Z' @
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
$ Z) ]+ J3 B3 l& y k- Z# l4 ~2 k
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
( r4 E7 G9 r: L% [# f4 T- x% {
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
, v9 V8 S' e2 I/ a" P: t
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
5 N! O1 b! g' [- D
==============================================
( K: z3 e! s- y) u7 [ h" e
方法二、
7 w. ?# u' u1 O5 ^) u8 q9 `7 A
7 j; U1 l/ w6 u' d' Y. s
7 E [5 Y' s2 c+ v3 G/ y d% i
rewriteengine on
& r; k& o T2 j, ]5 s% y* u5 `
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
/ j4 x& ]2 e6 I1 k" A+ X3 p
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
, ?& S- l9 p. _& c
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
s1 @1 T/ n% X: J
其他配置文件
, v/ }0 c6 P. x4 c& W% E5 V4 t
- i! V; c7 s0 j+ X0 Z7 L
接着在DNS中开设一个泛解析到对应的IP地址。
$ C7 {7 J' B* I8 v$ H) @
就可以实现下面的方案。
/ S# x' B+ Z3 q2 e4 M4 D# ^' S
8 ~0 _9 B! o% @
域名:domain.com
, G5 `* ~- @, t# n, F* ~/ u
绝对路径:/home/domain.com/
7 u" X- t' C f/ m h3 {1 L5 e
www.domain.com
自动解析到 /home/domain.com/www/
& @$ |2 S7 ]- y* B
abc.domain.com 自动解析到 /home/domain.com/abc/
( |* L+ A' M; C9 K/ W4 y5 D
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
% L4 Q% E: j4 N, i, {2 B* s! @+ G9 ?, j- C i
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2