标题:
独立主机Apache 配置二级域名
[打印本页]
作者:
admin
时间:
2009-4-26 19:44
标题:
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
% v G' D& D3 z
0 k, v+ R/ U8 A0 p$ M
RewriteEngine on
- |4 b/ z' S% A' w2 ~4 G9 e
RewriteMap lowercase int:tolower
# V4 n) V! b6 `) m! B% Q7 {
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
: Q$ u; {$ A& }; R1 q/ F$ L, O
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
/ C; E4 w' \9 b) f
RewriteCond ${vhost:%1} ^(/.*)$
3 F0 U9 H2 w0 _( y* {# X. i
RewriteRule ^/(.*)$ %1/$1
. G" |+ o) x4 S% L; @: X% D* T
0 r7 Z9 e: \1 y' o8 T# q
+ C5 I# V Z8 x; z2 u' P8 K
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
( B. T* Q7 w |; C$ D; i' w3 J
然后,在这个所在路径的目录下创建一个文件: vhost.map
9 e" o2 i5 c4 o H; J* c
内容为:
& F% T6 `' @* o! ]( A3 c
$ R* c3 F" @5 D4 b* ], b8 ^5 e
www.domain.com
/usr/local/www/data-dist/domain
8 N( @4 T# ~2 ^. ~! L
bbs.domain.com /usr/local/www/data-dist/bbs
% g1 U8 ?* j) i
anyname.domain.com /usr/local/www/data-dist/anyname
$ }( w& P) s8 [1 D7 R3 n' Q, I( K+ ~5 E
- q& _2 W- g ^3 {9 S+ S
以上部分都是:” 域名+空格+绝对路径” 的形式。
8 l6 R9 ?4 {5 Y3 Q! H
9 M, u* R/ X7 B3 N# O- v3 u
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
8 m; i. e2 q4 O
domain , bbs , anyname 等等,理论上可以无限。
7 o; d/ P3 B( c& | ^; O7 N
3 y, E, }. {! f/ S L, w
这样,通过浏览器,访问
www.domain.com
时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
e# I9 t5 C0 V5 d8 C6 T& {) ]
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
, m k; r/ _( W* f
/ V% H+ Q! Z& U5 F* e2 S
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
/ d! P- Y2 W% V+ R4 s4 y1 r
第二步:打配置文件尾部加上
0 F$ i+ K, _7 k( S8 ^/ ]0 {: b
RewriteEngine on
9 X8 \: Z& V7 s0 C& U1 B
RewriteMap lowercase int:tolower
: f; ` S. a. P) a5 m
#定义映像文件
3 p$ S* j- |$ r+ S, M) G9 ^ o8 T" ?
RewriteMap vhost txt:/apache/vhost/vhost.map
' ?5 z# ~8 u% ~# ?1 w" }8 O8 r8 [' ^# p
#处理变名
* x; P0 G0 k* e* Z6 ^6 e/ Z6 B
RewriteCond %{REQUEST_URI} !^/icons/
4 L7 V) H/ w" c( A: k: o+ ~( m/ }
RewriteCond %{REQUEST_URI} !^/cgi-bin/
8 X* f2 E; _/ `% u
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* k( E- @: f9 L- f' D7 e3 Y# @
这里做基于文件的重新映射
# `6 j( W& \& G8 t* \$ F8 E3 `. B3 i
RewriteCond ${vhost:%1} ^(/.*)$
1 o( m3 y' ~; ?6 M7 U1 V6 V& U
RewriteRule ^/(.*)$ %1/$1
- s. w* u! q8 ~6 V' f
RewriteCond %{REQUEST_URI} ^/cgi-bin/
0 y3 H4 o* [4 U
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
' s6 n) t: L+ F& G. f/ n
RewriteCond ${vhost:%1} ^(/.*)$
# R) T* ?5 ]3 a/ _! r) k3 ]3 m7 N) j8 M
RewriteRule ^/(.*)$ %1/cgi-bin/$1
6 d9 L# D8 H. _ x8 g
" K( M1 t0 w' k: p" {. q
注意:vhost.map文件是域名和空间映像的文件,格式如下:
1 @+ l: {6 c" P2 |2 M" {, u
www.abc.com
/vhostusr/www.abc.com
& z7 |& o1 a( H1 h R) X& ^
www.xyz.com
/vhostuser/www.xyz.com
% B* K* Z- R4 j/ k: P
www.cccbbbb.net
/vhostuser/www.ccbbbb.net
; t& ~ i6 r4 `
.
7 t$ l( _; i$ V) O x* s
.
+ G9 D6 Y3 x& ^8 _
.
5 ]5 }/ Y. x3 o$ M) G' P6 q8 z" P8 m
.
X& {! ^6 n- b
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
9 j, t0 i: |5 o9 a( O
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
7 y0 ~! P7 y8 F: G$ \% o# m5 f
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
3 s9 J1 z# z: b/ m. B+ I( Z' x
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
5 H0 s( F" z, G& \4 v [
==============================================
* S0 P# N$ |: Z4 X2 A% W X
方法二、
) c& T3 m' D2 f" d2 h
/ ?7 z n7 b/ k
' i, @ D8 ]/ C" m' V* k) X% L; y
rewriteengine on
( Z5 R& r" a1 q- x C. m
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
2 m+ ~ N: A9 G1 s+ O. Y' _
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
, o1 R6 U! Q2 c
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
' v3 V3 N9 ?" k: s6 l- D. Q
其他配置文件
; K8 [+ m! p$ s& |3 E
4 } q, Z- c C, M8 e
接着在DNS中开设一个泛解析到对应的IP地址。
3 ?4 v% a0 L* L# ?& L
就可以实现下面的方案。
( B- B% i8 Y- `# f% N! i+ x9 \7 Q0 u
0 K ^$ [; y* D. Y! x7 W- o
域名:domain.com
' N$ E3 d9 `( r4 Y# f4 a% D
绝对路径:/home/domain.com/
) u! V! c7 W- o7 ]
www.domain.com
自动解析到 /home/domain.com/www/
9 i: Q" Q3 w5 p7 F9 T* u$ ?; k
abc.domain.com 自动解析到 /home/domain.com/abc/
# Y- }: w: v, t6 l
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
. z) R6 T7 n' D, c) P8 z
直接建立子域名名称的文件夹即可使用。不需重启apache。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2