获得本站免费赞助空间请点这里
返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:1 X5 g. [* z  O8 x6 Z( K& K

: G  b. a0 y. f8 D4 h+ S6 h( \5 {2 zRewriteEngine on9 t- P( O; @' J7 R
RewriteMap lowercase int:tolower3 u* q) I: {3 w& a0 v
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
( F: f8 c- Y- _) B, @7 q7 x- F% Y' }RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
7 M6 _5 I: l" U9 WRewriteCond ${vhost:%1} ^(/.*)$) y3 m, a: ]; A# o+ j
RewriteRule ^/(.*)$ %1/$1" t# b6 v0 e4 V! ]

6 H- X  G, o' f, c. l
: L" n1 C5 p" I; _5 K其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。( {4 O% r, k# Y/ J$ t" U2 G
然后,在这个所在路径的目录下创建一个文件: vhost.map
+ `. m# M/ U1 b  b; g2 }* z) r3 Y内容为:' A6 h+ w) f8 l: U% W2 Y0 f* h

; M! D  v6 p9 Y5 E4 J  K4 A, O# owww.domain.com /usr/local/www/data-dist/domain" J* ]* S1 Y5 z. b: L
bbs.domain.com /usr/local/www/data-dist/bbs& ~' d) {% X% p5 S  M! R1 h1 [9 U$ \
anyname.domain.com /usr/local/www/data-dist/anyname
) p; v+ _  x) O, ]6 J# R2 E
' a  l, P+ C& _/ w0 E7 _" z以上部分都是:” 域名+空格+绝对路径” 的形式。3 B" G5 u+ X. j6 E) P4 g

: l3 B% j1 x! d: @# ^; m最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
* N* g3 ^3 [* T4 s! X, y9 Ndomain , bbs , anyname 等等,理论上可以无限。
& W- ]- Y) h1 b  F1 ^& M2 Z3 R) Y! }* ?1 {6 D0 o5 }1 t5 b, ^" h
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以; i  U1 r4 |7 e
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
7 V0 u  I% F' \
+ Q  F- w; u! u; |9 v! I4 s+ }第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
; }9 p( l1 t: Q, L' T7 m/ X  q2 x第二步:打配置文件尾部加上% I& w: g' x0 _5 g
RewriteEngine on
. ^( ~; {) k5 B9 N7 LRewriteMap lowercase int:tolower0 B+ c6 v" e4 u6 R
#定义映像文件
2 \( P1 v; @9 M/ Y7 gRewriteMap vhost txt:/apache/vhost/vhost.map
9 ]" N' l) X; z$ M$ z#处理变名
, X; k5 a6 |; KRewriteCond %{REQUEST_URI} !^/icons/1 k( }2 w+ R. a
RewriteCond %{REQUEST_URI} !^/cgi-bin/4 P! ?6 p$ v" {* f
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
/ y) I' `2 [! T8 U: i) y0 _这里做基于文件的重新映射
! O3 w, A5 }3 Y/ TRewriteCond ${vhost:%1} ^(/.*)$
' |4 a# [6 N: p+ E1 rRewriteRule ^/(.*)$ %1/$1
# g9 l0 |7 o! v. }5 [RewriteCond %{REQUEST_URI} ^/cgi-bin/
  z0 L# I) R( [RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$/ o3 K$ U; c2 Y
RewriteCond ${vhost:%1} ^(/.*)$$ h0 x' w4 ~0 S
RewriteRule ^/(.*)$ %1/cgi-bin/$1, a$ Q' |6 s8 q* M) z( W# q

6 t8 c9 v8 g' _) R6 B注意:vhost.map文件是域名和空间映像的文件,格式如下: 1 c; X1 V- q) B/ P6 p: v
www.abc.com /vhostusr/www.abc.com
1 y, h. S. U( ?- V7 d. G: {www.xyz.com /vhostuser/www.xyz.com
: R9 f4 _, C5 e  ]8 m' Cwww.cccbbbb.net /vhostuser/www.ccbbbb.net! z) b2 f0 }, q2 a- @
.0 a5 F" _5 a4 l* Y* |
.
* n( A. b5 G$ o" o, n( V( I# Q.
1 b% b5 b* u* [! _.! h3 s# h+ w6 s, u1 E
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)7 D, Y4 B6 d. J9 s
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
) h9 A" X$ r; `1 h6 ]其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
; o$ E0 T( V8 r2 V1 a: O注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~+ B, @: U: F4 n
==============================================
( w( C! x+ Z$ e1 ?方法二、
: ]4 ?9 }$ S/ x4 e' E
! @- l+ R4 ?! V7 O" P+ e: m
4 Z9 g  o: P* M5 x. Nrewriteengine on6 y+ q6 s6 W, H! e3 M' D
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
: @7 [% t6 R1 u7 i* e( W# M1 Irewriterule ^(.+) %{HTTP_HOST}$1 [C]
, E% X; \, y% z. g6 hrewriterule ([^.]+)\.域名\.com(.*) /$1$2# p: e8 f# o# ^
其他配置文件) h) m% X) o8 C0 \2 D+ j2 _! y
- C5 N& Z1 e% x5 I1 E2 u; l
接着在DNS中开设一个泛解析到对应的IP地址。
' H) K+ e3 p: M* @) w; d就可以实现下面的方案。5 O3 k. e  P. B8 E$ |

- c" M  [  p. ?* U域名:domain.com$ ?8 C/ G8 s( T4 x& Y, _
绝对路径:/home/domain.com/' `) p, Z$ k1 i5 J2 W
www.domain.com 自动解析到 /home/domain.com/www/' i# S7 C% y1 D6 D  Z# g* S5 n
abc.domain.com 自动解析到 /home/domain.com/abc/3 ]$ M7 {: e8 b) q/ G8 H# e
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹. v) g! u  M4 v' X# ]
直接建立子域名名称的文件夹即可使用。不需重启apache。

返回列表
【捌玖网络】已经运行: