标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
3 j0 |# E( [ j# j1 _* I5 ~8 w
3 N" z2 A7 W3 P; H) Y* {* i) y9 {
RewriteEngine on
1 [, e& X, _# D: w7 z8 J
RewriteMap lowercase int:tolower
3 ^7 V1 J" g; J/ Y- ^% M3 H' [- a
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
7 c* h4 n& g" ]: b: g5 m. a
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
4 r) C& m8 ~" s' a: Y4 ^1 _
RewriteCond ${vhost:%1} ^(/.*)$
- ]4 u+ Z1 b) w4 H3 c/ q8 s
RewriteRule ^/(.*)$ %1/$1
5 Y2 v1 S& c3 f: h5 O6 P
" }. A( N. w9 E: o7 E
3 ~% F9 Q) N/ d: @) m$ g+ w) b# X4 v
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
, d9 c7 W0 |1 L- h$ g# t! y
然后,在这个所在路径的目录下创建一个文件: vhost.map
& _4 {3 S2 Y9 Z7 B+ r( n
内容为:
: o3 B% g# L* r3 d
' F O4 a3 K1 @! S, ^: Z, e
www.domain.com
/usr/local/www/data-dist/domain
' M$ A" F+ Z4 b- a4 O& p
bbs.domain.com /usr/local/www/data-dist/bbs
& s0 U5 s6 L5 M' N* i* g/ j
anyname.domain.com /usr/local/www/data-dist/anyname
& u0 o* U0 q9 W. [
3 ~) T( p0 Q: Y, T
以上部分都是:” 域名+空格+绝对路径” 的形式。
- A1 V1 r. ]7 [5 T Z
$ E! S* A6 t' @; b; w j
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
$ B1 x$ t$ A& h* R% o3 ]
domain , bbs , anyname 等等,理论上可以无限。
8 p! t! U0 ]6 `3 q# @1 u5 {
8 P8 [% F- m1 P+ S) s* {% D
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
" U* y/ L2 `) ^! \; v! t% r' n" D
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
# ^; i0 }4 c* |' H( M |
/ L$ {/ c" E0 u% A1 j- T" ~
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
+ ~9 s, z* o! t, O
第二步:打配置文件尾部加上
' c& e8 O3 n7 T, p( D( r
RewriteEngine on
8 K6 g# ]* m; I/ D6 q
RewriteMap lowercase int:tolower
1 c+ o" }# N, ^( b f8 i
#定义映像文件
2 M% P7 v. Q* @1 }2 z
RewriteMap vhost txt:/apache/vhost/vhost.map
, {! s9 E( q B) t0 m* m* r
#处理变名
, a/ \) I- C. Z3 R, B. ~5 B( |
RewriteCond %{REQUEST_URI} !^/icons/
f2 U* f) T8 x) A
RewriteCond %{REQUEST_URI} !^/cgi-bin/
) o' D) o! {( R8 w
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* {# |. i+ Y4 W( ]* b# G# Q* T
这里做基于文件的重新映射
; ^7 O5 v3 W( C/ `+ F
RewriteCond ${vhost:%1} ^(/.*)$
: S8 g" s$ N* L- s5 Z2 J
RewriteRule ^/(.*)$ %1/$1
5 P; B0 a" \- T1 @5 [
RewriteCond %{REQUEST_URI} ^/cgi-bin/
/ [& r7 W9 \9 M/ {& q9 ?5 m+ u( r
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# |$ f+ h* T0 ?6 b( W
RewriteCond ${vhost:%1} ^(/.*)$
# t$ p v+ Q1 ]% j4 M% Z
RewriteRule ^/(.*)$ %1/cgi-bin/$1
' _0 V h& g' j" g3 {& [( w: a
' x. L1 j! ?' Q+ |" H" I
注意:vhost.map文件是域名和空间映像的文件,格式如下:
4 w2 j% ~& Z0 E) _1 q$ K7 O
www.abc.com
/vhostusr/www.abc.com
1 W: U5 g6 B3 o5 Z
www.xyz.com
/vhostuser/www.xyz.com
8 S% Z0 E9 d& F1 n7 `
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
3 b5 f% p2 s. f9 x: x3 ?
.
: X' ?" m/ B! f1 Y! v# |- U
.
. m$ W3 S0 q5 T% v. Q, K
.
" c: M! j4 G0 ?& g3 U' J8 N' C
.
( s' B/ K3 I% S5 u' t
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
1 ^& o$ O4 Q! f$ `9 W9 e; Q
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
$ d& g$ P. g! D) e1 @7 v
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
# A2 l) X% x% D3 v
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
' `% W3 a. ~ N. h" Q! b
==============================================
" B7 e2 ~. U5 G0 B; {
方法二、
2 b; t& `5 Y8 H. {) e8 b( S% L3 B
* U+ F) W# C) Q" c. j
& P1 w* Z5 @- m
rewriteengine on
: T/ H, s) h4 E1 t% r* X
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
6 w. _6 a9 K( J
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
7 z2 Q0 o5 H& Q$ \8 K/ W
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
2 \" P u7 N/ l" i0 K
其他配置文件
7 i4 ~ q0 n/ |4 N# h5 q/ v2 }0 s0 Z
: w5 T2 \+ @& M$ E/ R8 S' D
接着在DNS中开设一个泛解析到对应的IP地址。
) ]. p$ d5 J. r2 k( _# t3 y
就可以实现下面的方案。
' n; n& K4 x/ W+ @. w9 R5 G
' a5 z8 A) ]0 t O; r( d0 Z) T+ S6 M
域名:domain.com
/ Q/ L+ v2 a4 w2 O$ \ ~' L
绝对路径:/home/domain.com/
* W3 B- Y: T9 Y& }5 n0 z
www.domain.com
自动解析到 /home/domain.com/www/
9 X; E/ b" A ?) y2 C$ _6 `3 M F4 p
abc.domain.com 自动解析到 /home/domain.com/abc/
* J) s7 Q/ z+ D
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
. O' e: m$ P- p' d' J
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2