标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
: U$ ~! f- k$ V$ w8 x S0 N
3 j$ H! f+ h6 U
RewriteEngine on
5 M/ `; R# N8 s. ]
RewriteMap lowercase int:tolower
6 N' g8 q9 k( e6 k! w( a
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
* b$ G2 J- M0 J# v' [
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 ^1 N: K, X K& R: A3 f& n
RewriteCond ${vhost:%1} ^(/.*)$
) h' G2 w9 D0 B: |2 d
RewriteRule ^/(.*)$ %1/$1
3 b, b, r) j8 p* O+ J
! M7 U) Q$ P: v' V( _6 K# [
8 i% \ h: s2 `
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
# `& D! O0 P7 N: e2 W3 E
然后,在这个所在路径的目录下创建一个文件: vhost.map
, z( k0 _6 k) b/ y; I7 B
内容为:
6 A& j8 J- t, N5 ]
7 S( E: R( Z: q, l- ]
www.domain.com
/usr/local/www/data-dist/domain
: P# `3 O1 |, {. ^: b: h2 m
bbs.domain.com /usr/local/www/data-dist/bbs
" b7 }. V6 k& w
anyname.domain.com /usr/local/www/data-dist/anyname
* Q6 I0 P8 C, z5 z/ d
5 f) E: E- E1 D( v0 N4 h8 q
以上部分都是:” 域名+空格+绝对路径” 的形式。
3 d4 u4 R: p# ~7 q( a! O
0 D; B; H2 t0 R& S; O
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
) O4 d( V6 M# u9 e0 C5 ^4 c
domain , bbs , anyname 等等,理论上可以无限。
2 {2 w) Y8 \" v3 N/ Q
5 [" a' }9 x) a, A2 r- ~
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
* E& \6 p2 X$ B
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
/ Z# o' P8 r* T
5 y I2 Z9 F3 r. `5 I$ a( c# \! ]
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
0 }; F* ]1 t& u6 x4 \: H" m, Z9 J
第二步:打配置文件尾部加上
! Z$ m [0 ]/ L; G% q4 N; y! F
RewriteEngine on
# h: b x0 s8 V9 C- \- l+ i8 h
RewriteMap lowercase int:tolower
2 {. f% [3 {% \ n/ h4 W7 z3 ~
#定义映像文件
! m. J2 Y7 a3 X6 S4 u, w4 @
RewriteMap vhost txt:/apache/vhost/vhost.map
" i) J# L' ?* O4 A H# h1 K
#处理变名
1 u- M8 k$ {9 E2 A; ~ U# B* y0 S9 R
RewriteCond %{REQUEST_URI} !^/icons/
8 }/ G, ^3 w( E, T5 a8 d/ E$ t
RewriteCond %{REQUEST_URI} !^/cgi-bin/
9 [5 \3 ?5 c _. l& r
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
: `" M1 v V' P$ X) N7 V4 S O
这里做基于文件的重新映射
2 g# q7 n! n8 e5 j" p2 U- p, V
RewriteCond ${vhost:%1} ^(/.*)$
8 ?; w4 `, Q. t6 N
RewriteRule ^/(.*)$ %1/$1
4 |% Z0 L i4 i8 _6 g* U
RewriteCond %{REQUEST_URI} ^/cgi-bin/
7 D7 ?' |% j" ~6 J: k
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* d& r3 j$ Y+ q/ v* p$ W
RewriteCond ${vhost:%1} ^(/.*)$
+ u) L6 k) Y4 x7 m
RewriteRule ^/(.*)$ %1/cgi-bin/$1
0 }, g* d# |0 U7 {7 u5 p
, u5 l( y- S: K: U& V* @0 h8 C0 S
注意:vhost.map文件是域名和空间映像的文件,格式如下:
: O, ~+ E `1 s" O+ D8 M
www.abc.com
/vhostusr/www.abc.com
* e7 W) G" W) Q- s
www.xyz.com
/vhostuser/www.xyz.com
6 ~$ @7 g' P6 x' t
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
4 z5 O* E W! y$ D; A
.
& n" G8 F; j S3 b3 X
.
; k9 {1 f9 ?9 T2 y
.
# \4 {* y: W b3 r D) R
.
( h- \5 s1 Q/ u I) O4 P: a1 J
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
+ Q3 T. H3 `1 r$ I9 V# ?
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
( u) P8 ?! a' P# L4 I& p6 F
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
; R7 v1 K( |0 n* l% w- ?3 c
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
" {8 D" H! o# N
==============================================
$ X, Z N: L( z8 {0 P* L: y
方法二、
" y7 Z. M( Z* g1 @% g- t$ C
: \( l$ x& x' Y5 c0 [
2 j; Z. e. x' K/ G$ @; F4 Y* E
rewriteengine on
, z$ E7 a, I1 P( a# L% e+ w
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
& F, l" Z c7 |5 C' s& d- ~" w- t
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
' P: N8 ^) R, T6 G
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
; h* Q% K7 W8 L6 n4 q! @$ Z1 e
其他配置文件
1 I0 U S. \- E: |* ?% b9 N
8 A6 K4 l: T# @1 ?$ W9 ]' W
接着在DNS中开设一个泛解析到对应的IP地址。
- B& G, [" O- F3 _, a+ i
就可以实现下面的方案。
% `8 y+ t% H3 \5 C, Y
# y7 b5 w6 A O, U: W$ u: M' n
域名:domain.com
* b Z6 [3 G% n4 @7 z
绝对路径:/home/domain.com/
- b6 C! a4 E4 P' j( _' S& M
www.domain.com
自动解析到 /home/domain.com/www/
5 p7 @- F2 H3 C, `: L
abc.domain.com 自动解析到 /home/domain.com/abc/
0 }! e$ ]0 c' j- y
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
0 g. m/ q( s0 [3 h
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2