标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
9 h& Y& o& U1 m- N4 Q- ?$ p
0 ]; [' x/ Y, i0 t$ k& T% L- Q
RewriteEngine on
& e' `( f$ n V" @2 {
RewriteMap lowercase int:tolower
N p0 K2 d1 y# z% ~
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
! ~5 Z& x _% [
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# _4 {) G N" A5 r
RewriteCond ${vhost:%1} ^(/.*)$
* w$ |8 P* r) O3 Q' k, S
RewriteRule ^/(.*)$ %1/$1
, K9 I1 {$ d- o3 I
! y* B) D, n) c
$ G& R u/ ]9 j9 I
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
9 J5 {' d; \* }) @* T' a8 {" @
然后,在这个所在路径的目录下创建一个文件: vhost.map
$ [& z: X3 v: q( j' z3 o6 O
内容为:
4 \1 Z1 _& _+ K& l( ]& y- b
) T; g& C2 }. ^9 g
www.domain.com
/usr/local/www/data-dist/domain
]; g, E5 g9 c ~5 r
bbs.domain.com /usr/local/www/data-dist/bbs
# L5 o$ w; |7 Z0 z! T
anyname.domain.com /usr/local/www/data-dist/anyname
; b: m& c1 c/ v' [+ F
' a8 }$ O. b" w o
以上部分都是:” 域名+空格+绝对路径” 的形式。
- c F8 W c! X7 Q( z* m0 c/ P* B4 D
" {3 P, E( u: {- s, x$ t
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
, Q( O5 U1 j# H+ x7 }
domain , bbs , anyname 等等,理论上可以无限。
, v: a+ f* n7 X! k/ N
8 @- G; }" T- k; n" t
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
' Z# o0 m, A& u9 |* ?( C6 Z
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
$ B6 c9 c/ U1 i) H( _ P; J
; [, ]* R# R! |) T: M
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
+ v& y5 G7 J7 e% Z/ D( l4 T
第二步:打配置文件尾部加上
- q0 V. m8 R; T
RewriteEngine on
$ {: c. I2 n; T) E# E3 U) ?
RewriteMap lowercase int:tolower
# T" l0 B3 U' i; [
#定义映像文件
$ N" `- b5 b1 |7 i
RewriteMap vhost txt:/apache/vhost/vhost.map
$ z8 v3 {& o5 p7 l# b
#处理变名
* p6 \* G4 Q: a0 a4 j2 m1 H
RewriteCond %{REQUEST_URI} !^/icons/
2 [; `- P4 g W) x* t
RewriteCond %{REQUEST_URI} !^/cgi-bin/
: t' n8 U: w) T' g( h: N
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
, K! g1 R) \$ Q) U8 G
这里做基于文件的重新映射
" o) ?& g+ K6 {8 h8 v" i* V
RewriteCond ${vhost:%1} ^(/.*)$
0 x% d$ V. d3 \) C" z# }
RewriteRule ^/(.*)$ %1/$1
7 H2 s: \* h A
RewriteCond %{REQUEST_URI} ^/cgi-bin/
8 Q& k+ e2 V) f P. m' c) p. ^
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
" s- S9 B) |8 s$ L% L! h
RewriteCond ${vhost:%1} ^(/.*)$
3 F L$ J! P1 C0 W. C6 {
RewriteRule ^/(.*)$ %1/cgi-bin/$1
$ y/ C1 z' {% k) Z1 [+ B; W
" L* }+ \9 k9 Q1 y; p
注意:vhost.map文件是域名和空间映像的文件,格式如下:
( T6 ^* W/ I+ Z7 @) Q1 x
www.abc.com
/vhostusr/www.abc.com
; w8 p8 Z# v7 n3 V, C% {* I
www.xyz.com
/vhostuser/www.xyz.com
u% n5 f+ ~1 t! t
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
0 ]* x8 s, b9 j( @+ c
.
7 [3 q! w! }# \) W% T
.
. Y/ e+ i J: }2 C3 A! t
.
: X+ O* |, J4 i' U" l" C
.
0 V; D* a: f6 m( I8 D8 _# C' _# K7 L
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
0 f, K8 _5 K0 T
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
G9 |# C7 s. a
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
* n3 s% s; x4 u. v' F3 {
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
/ n) f( i6 {' l) |/ ]% N
==============================================
' w4 t9 P4 W, v! ^/ U( H$ g( q
方法二、
8 k3 B6 W; ]. V" d5 ^7 P9 N
/ E% {8 Y$ H2 f1 ?1 [
- H) E% V& x- G2 l, Q. U2 k0 _
rewriteengine on
. f) A" x* m. w" O2 P: ?
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
/ R# t1 ~: H0 U4 H0 G
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
! O" U; v! M: x8 O
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
, |; S, y3 O5 i% p# j
其他配置文件
6 q, L3 Y' T. V* t% P+ v# H/ P2 p
% V8 u* [, g1 a3 r6 @9 H
接着在DNS中开设一个泛解析到对应的IP地址。
! V, F$ m: P7 _" B8 |8 p
就可以实现下面的方案。
; r9 U. F5 a7 |! e2 J+ [
7 \4 y v* I+ [0 o
域名:domain.com
/ [! J o% d& Z( i: n; Z/ i
绝对路径:/home/domain.com/
$ e$ u5 C! R5 r
www.domain.com
自动解析到 /home/domain.com/www/
' ^, C, T2 @& _7 v9 S W$ S
abc.domain.com 自动解析到 /home/domain.com/abc/
0 k- K2 ]; _! y9 p) A) N9 E# b
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
; j0 k+ B& N+ g# o. f! Z( P# B
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2