标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
6 V( w0 m7 [. X" x! L
7 W- }3 z4 H3 y; I* t
RewriteEngine on
# k" t; j$ Y% t. U& j% B
RewriteMap lowercase int:tolower
4 y3 B3 O# b: ?6 H, P
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
' T, ]( G; w2 w- b S
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
: g6 Y1 N) r5 W7 w, Q
RewriteCond ${vhost:%1} ^(/.*)$
; Z2 \ f- }: ]4 L# J1 Q
RewriteRule ^/(.*)$ %1/$1
' d& b1 y8 s' k8 J5 ?
, n2 I" T. p3 ]0 @
3 r9 C6 P8 U' Z0 E* f- ~" q+ h& B. f
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
7 D: j5 k+ E% \, N) }$ J
然后,在这个所在路径的目录下创建一个文件: vhost.map
) W) b# j% g! N8 {( N* N
内容为:
! f! M/ `0 p" J: \4 M2 v% m
) g5 Z4 G* M" s1 q
www.domain.com
/usr/local/www/data-dist/domain
, H" ?: f4 p" h; J0 K6 Y8 I0 |
bbs.domain.com /usr/local/www/data-dist/bbs
' d7 z+ \8 y. C
anyname.domain.com /usr/local/www/data-dist/anyname
' x9 g5 o1 z9 _2 |8 M
0 n+ H% w3 e( M2 @. t
以上部分都是:” 域名+空格+绝对路径” 的形式。
! D' t. w0 f: _+ E
" ~, R9 v! w% B
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
, o4 w& ~. s/ P+ K$ @3 d
domain , bbs , anyname 等等,理论上可以无限。
* M7 Y4 O; Y, t) ?* n. S J
( [' ?8 J. ?4 A) {7 X8 r) z
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
9 Y- \% A* k" ]2 O" V# J
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
8 G* b! @: K$ W8 U' z) [
2 G5 B2 ?* }5 M6 A; H1 Z0 D
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
' M6 h; p! ]) r- V4 x; q
第二步:打配置文件尾部加上
* D7 J* s. ^; I
RewriteEngine on
1 ^7 U- A0 q" w
RewriteMap lowercase int:tolower
) r3 h _) ^4 l9 j6 S
#定义映像文件
, s% W, o% s' A
RewriteMap vhost txt:/apache/vhost/vhost.map
4 _1 P' B0 n# I; b
#处理变名
* |. t1 ^8 n0 G m% }; F) d2 w$ M
RewriteCond %{REQUEST_URI} !^/icons/
S0 _( J6 N4 A* p. T) L
RewriteCond %{REQUEST_URI} !^/cgi-bin/
& W" L( }. u' U; ~, b* Z) f
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
) y+ ]1 h1 P) m, Y
这里做基于文件的重新映射
$ S' O# R% H( w* C: r: k
RewriteCond ${vhost:%1} ^(/.*)$
, S2 q* W: w% d ?+ |+ o. c
RewriteRule ^/(.*)$ %1/$1
/ w3 j7 w1 I& f# w+ w7 b2 s" t4 x
RewriteCond %{REQUEST_URI} ^/cgi-bin/
+ }3 K6 X& Z1 G( q j! ?6 h6 v
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
; y! o) L0 B8 k- y b! ]
RewriteCond ${vhost:%1} ^(/.*)$
( V8 o+ {4 x4 s- L
RewriteRule ^/(.*)$ %1/cgi-bin/$1
0 o. x% A- N4 q0 @
% y2 V, {( E' N" P9 F
注意:vhost.map文件是域名和空间映像的文件,格式如下:
7 ?/ z; b8 x% j5 {0 _8 A
www.abc.com
/vhostusr/www.abc.com
3 L9 N% q# b5 p$ x* P9 ^% e! t
www.xyz.com
/vhostuser/www.xyz.com
2 w( v4 ^) `/ m9 {
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
3 N! N6 Q2 E: O. ~: Y
.
9 h V+ @7 f/ A& |+ C, \! B! U7 q4 {9 E
.
3 f* d# z; S7 E- A3 u2 U4 V
.
8 z5 u: r. J* |6 \$ [ a0 ]
.
& s3 v- Q* k# b6 G* X) N
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
0 u" X8 i3 s: X8 w2 q a" I
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
( u4 `8 `( \9 i& b1 B9 A2 G
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
/ z- d# o: B) U; N! d
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
7 q$ [$ `8 U6 I. H
==============================================
& A. R; E8 Z: J9 O. y) R7 h
方法二、
% m; t& T" a; K$ D" |
+ x6 B. y: ?" t& G
* Z0 `& i4 I' D, X. }: n/ f
rewriteengine on
# w. ^7 K0 ^1 N$ D0 {- k9 s
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
; O' c& c* P% _8 [: w
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
' B/ K Z' }/ x B* [
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
" w2 K0 n; f, a/ Y
其他配置文件
" A; P1 B' b0 z5 R( U7 ?; w
* ^9 g- h9 R2 m. H% r$ h7 a1 v0 T+ Z
接着在DNS中开设一个泛解析到对应的IP地址。
' A1 I( ~: b7 r) ~8 Y
就可以实现下面的方案。
. o0 L; {+ K6 t* h
# _9 M# _4 ]" c
域名:domain.com
0 D4 j/ ^, B# x- n; |
绝对路径:/home/domain.com/
* l, |, \, v- \* c7 l [) O3 y% P4 \1 G
www.domain.com
自动解析到 /home/domain.com/www/
7 W4 ^) {2 H7 _! e- [1 j( n
abc.domain.com 自动解析到 /home/domain.com/abc/
% j. N6 o0 O* j4 W& X3 n/ S
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
~" p. w% b* F
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2