|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14347
- 金币
- 2459
- 威望
- 1647
- 贡献
- 1407
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
( o$ d" p3 y3 `$ t0 s
/ `- h* l4 u) s5 `9 @* }3 ERewriteEngine on7 ?3 q8 ~! y+ g& O" H; R" Y+ T
RewriteMap lowercase int:tolower
- ?" V5 d% y' _1 K9 i8 LRewriteMap vhost txt:/usr/local/etc/apache/vhost.map7 E& I- D4 x# D, Q
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
5 M+ p- U( K6 wRewriteCond ${vhost:%1} ^(/.*)$
]$ \) V# U1 _' ]* y+ mRewriteRule ^/(.*)$ %1/$1, n2 n3 P# |% d: a7 a% s, u
3 W! @1 W% l+ N
- M8 g7 B* Z( g- X2 u其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
) T( W) q5 L2 l8 a然后,在这个所在路径的目录下创建一个文件: vhost.map
8 b; D* z4 R0 R内容为:
$ |" g# J% [7 _6 m3 f _5 |! O% B9 M8 l2 s
www.domain.com /usr/local/www/data-dist/domain) U& k3 ?0 d% X+ Z
bbs.domain.com /usr/local/www/data-dist/bbs
) w# M' |! I& n" ]/ S$ j- _anyname.domain.com /usr/local/www/data-dist/anyname# w" m3 a5 ]6 T' ~) G% C: I5 P
, e# R8 S+ A: y: r3 [# m7 k2 f/ Y& A
以上部分都是:” 域名+空格+绝对路径” 的形式。! z0 H V, b/ _. q
6 G! W4 G' H! l1 E
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:" i, @* S/ W4 m' I Z# m& m+ Q
domain , bbs , anyname 等等,理论上可以无限。$ M7 Z# z6 H U) H0 L8 g1 j% a
. R/ n" }- H5 q9 e
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以1 D' Z# u. T$ U0 ?
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
% r: P' G( m' l6 U& x. q) J; O R& H9 {. `
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
: q' J+ Z) ?4 x b第二步:打配置文件尾部加上, e( z. I+ x4 r7 G1 |
RewriteEngine on
1 ~& T0 v8 r# B% o/ Q6 ^( HRewriteMap lowercase int:tolower
; b$ N7 G. F$ y) l$ i/ u& ?4 C#定义映像文件- D+ o+ r; M$ O4 h; ?9 k
RewriteMap vhost txt:/apache/vhost/vhost.map
- [) P0 N/ u* U0 ?3 r; D#处理变名. g# j3 A0 G+ m& w9 F s. {
RewriteCond %{REQUEST_URI} !^/icons/
: S, S$ O+ m; g) m2 XRewriteCond %{REQUEST_URI} !^/cgi-bin/ L# ~) \* D4 I7 S' Q( h
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
1 l- u4 ^* [4 l这里做基于文件的重新映射
+ N c/ {7 q- r2 e+ Q. ^RewriteCond ${vhost:%1} ^(/.*)$( Z6 _! T% f6 l. ^$ C/ S
RewriteRule ^/(.*)$ %1/$1/ l7 G3 B9 y( H* y( e
RewriteCond %{REQUEST_URI} ^/cgi-bin/
1 \( L9 \# X! c& k" eRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ x2 h; `5 @ l# |) X" Z
RewriteCond ${vhost:%1} ^(/.*)$
# N$ _6 @7 Z w5 ?# |RewriteRule ^/(.*)$ %1/cgi-bin/$15 l& _. N U% N4 P$ C* ]" K& H$ m
+ A4 q! H& r9 o/ ?! E' d# L( S
注意:vhost.map文件是域名和空间映像的文件,格式如下: & k$ Y' j5 O$ P0 U+ {# D: ]
www.abc.com /vhostusr/www.abc.com1 S5 z* N+ y j% s( j* b
www.xyz.com /vhostuser/www.xyz.com
. l! u4 I8 G/ I2 i/ S/ k3 ?www.cccbbbb.net /vhostuser/www.ccbbbb.net
# H( Q! f3 z, v9 B1 F) K.2 z' L* r. Y6 Y
.
" c! \) Y2 G1 d$ M% ?4 A3 {5 L# a.* A, ^5 z8 X: x' i2 n' s, w
., W, _) g, \' F9 A/ `
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)& o5 M% J+ P1 z+ }' j
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~% O6 f0 N$ W: U/ ~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~3 E& H0 V: ]7 |& V7 ~- @4 U
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~$ Y$ {. l% X+ c
==============================================5 I; A9 D7 d! x! B
方法二、
, R0 S7 x/ |1 r0 Y, |
2 l% {. A, t7 `& A: R, c8 E# C8 s+ F9 c' [0 Y' o: @5 v
rewriteengine on' [0 O. f& `2 V; A x
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$5 ?+ z7 Q- ~7 h m3 ]* N
rewriterule ^(.+) %{HTTP_HOST}$1 [C]" W0 k# |: d N; k
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
! A# N# m" Y# I8 d其他配置文件1 B6 W* b$ L0 Z# Z9 `
' Q6 g! p! ? u! k3 J接着在DNS中开设一个泛解析到对应的IP地址。
1 J2 C3 V( p% }就可以实现下面的方案。
/ V" q" k# `$ T' W! [* J4 q2 r/ k% u$ c
域名:domain.com
5 ]" ]; _( u- I! x* s绝对路径:/home/domain.com/% Z/ K5 R& K$ b3 K- ?6 V. |' b- [
www.domain.com 自动解析到 /home/domain.com/www/* ], D# F+ r5 I+ P$ K
abc.domain.com 自动解析到 /home/domain.com/abc/6 s3 W6 X! f1 h; C3 \
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹$ y3 b: S! T: S1 r9 n, @: D8 R
直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|