返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
9 R% f5 Q2 y- c+ [# a7 s; B8 z4 |( }/ ^8 T& d0 o% h0 L0 j
RewriteEngine on" o  i3 I9 g" Y# }  G9 H
RewriteMap lowercase int:tolower
' \* M1 p' o+ {& uRewriteMap vhost txt:/usr/local/etc/apache/vhost.map
) \; C+ F. H8 u8 h8 hRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
* D% Z: I! c  C/ {RewriteCond ${vhost:%1} ^(/.*)$+ K) k0 B- R6 R" e' g
RewriteRule ^/(.*)$ %1/$1
) ]) w. {0 s. `$ N8 A6 _5 I
" a5 ~/ B1 c$ q. m
; ]8 L. h0 j# I其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
" w" {3 u2 J) D2 F! q! ^8 W然后,在这个所在路径的目录下创建一个文件: vhost.map
) I  A* e& u8 P0 \! w, @内容为:
  y- ?' j; z- e2 [9 ], l4 g* ?. C2 ?  R4 d" i/ m/ ~
www.domain.com /usr/local/www/data-dist/domain; u6 Q+ j/ \# f, N( M
bbs.domain.com /usr/local/www/data-dist/bbs
6 U7 G1 K2 K$ s  Oanyname.domain.com /usr/local/www/data-dist/anyname
  J+ F* s  j. R* @0 Q2 e4 R5 A7 R1 X. {  |0 ^; d) F
以上部分都是:” 域名+空格+绝对路径” 的形式。
; r+ {2 f: I- v& \, A4 x& X. W6 T' p
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:  q1 L0 n9 N* _7 Q7 q* v7 e
domain , bbs , anyname 等等,理论上可以无限。7 J' b; ^8 |  S
* f6 b" g4 K) M/ M8 t
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
9 E" c1 E, A7 e- L- u( P& Z随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
. g7 ?" B1 `( u& y  O
8 }, Q2 i, w$ K9 z3 P. k6 x3 p第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
! d1 {; D$ c% A( c4 y第二步:打配置文件尾部加上! X$ }) D  t4 l( S0 }% ]
RewriteEngine on
: d7 G3 V; n, s) x# pRewriteMap lowercase int:tolower
# P3 z, `; X! \! H2 \* B#定义映像文件
/ \' P$ G$ e+ U% aRewriteMap vhost txt:/apache/vhost/vhost.map" {# \  B9 [& R) S- Z/ N
#处理变名
8 {2 v- n/ X! L' G' B' jRewriteCond %{REQUEST_URI} !^/icons/
  u( p  x! T; i; }7 z  W2 S  bRewriteCond %{REQUEST_URI} !^/cgi-bin/
* }9 O& U1 I8 O' o; jRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
" M: K; w6 Y6 _+ e这里做基于文件的重新映射
( Y7 g! D; K$ U: s/ k  PRewriteCond ${vhost:%1} ^(/.*)$) e& Q  A. I8 t+ }# O3 _) v
RewriteRule ^/(.*)$ %1/$1: Z1 R0 m  v* ^- K7 Y: x
RewriteCond %{REQUEST_URI} ^/cgi-bin/8 R$ J, e# U! W8 N% W% ?0 N
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
3 F5 X9 m# |, G+ [* k' xRewriteCond ${vhost:%1} ^(/.*)$
# ?4 N( f, {$ h9 XRewriteRule ^/(.*)$ %1/cgi-bin/$14 ~  F. ^( L$ k* K6 p/ }

7 i1 i* ]$ c5 A! V( T注意:vhost.map文件是域名和空间映像的文件,格式如下: 8 f/ j' O, w, t' W: h5 q
www.abc.com /vhostusr/www.abc.com
: C( g: v  ~" a3 I! h& pwww.xyz.com /vhostuser/www.xyz.com
2 _+ |7 q# t6 @- s2 Xwww.cccbbbb.net /vhostuser/www.ccbbbb.net
! E7 q( J1 ], n$ V% n# C8 h, u.( c% C. q; e) c/ E: k, }# N
.3 E+ [/ Q- w! M; e. P
.
% H; T8 G$ _1 R, L4 L6 R.' W2 \2 c7 b* t, a
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
4 {6 Z7 G  ?0 |: ~8 L7 x第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
& |  ~' _8 `, a8 v! |其实这个可以用php脚本来完成的,很简单的~~呵呵~~~: q$ D  N- Y* ]$ m& U, D
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~, J7 s2 d& j) o4 O9 l9 s
==============================================
; M" R5 Y% g6 v# u7 x% D方法二、
3 U" O$ ]' V& N' x2 L0 a, T, h/ e; q" j9 Q- P1 _% S5 M: Y% w6 C0 a

, G: N- h7 u! y$ srewriteengine on
  F, _' k) `9 I4 D& Wrewritecond %{HTTP_HOST} [^.]+\.域名\.com$/ C) Y' }" o* _5 g" D3 b+ C
rewriterule ^(.+) %{HTTP_HOST}$1 [C]& B. I- ^5 ?8 p7 V7 q2 D3 Y
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
9 B/ ?7 \0 {( |0 P. e9 G3 D# z' c其他配置文件9 f) i5 m* b! p& N5 \( i7 _$ e
% s% K3 f* V9 u6 y/ v
接着在DNS中开设一个泛解析到对应的IP地址。
( U* F; H1 I# v* |就可以实现下面的方案。
3 _0 R: v' z* `! d- N2 c: E2 B- n: U1 l
域名:domain.com4 S: U% S, m- q5 F
绝对路径:/home/domain.com/
$ W+ W9 h9 u, z; |; J1 [! C1 xwww.domain.com 自动解析到 /home/domain.com/www/
9 X) l' v/ H: B8 j, O- Wabc.domain.com 自动解析到 /home/domain.com/abc/
6 V2 i$ z" c7 V0 K0 F$ a等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹. k% c; R- O' D! L' r+ R
直接建立子域名名称的文件夹即可使用。不需重启apache。

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