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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:, j* z1 \2 k( k: ]% x5 I
, U5 V$ z& ~* {
RewriteEngine on
# a: D4 U! ^( a8 w* j% ZRewriteMap lowercase int:tolower
' R5 ?1 U1 _! m; W5 M; Y  fRewriteMap vhost txt:/usr/local/etc/apache/vhost.map, j( b$ x: @& {1 z
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$& v* e* R" s% j3 Q
RewriteCond ${vhost:%1} ^(/.*)$
$ o; @$ D1 w; hRewriteRule ^/(.*)$ %1/$1
+ m1 Z$ _: H/ {' R+ Z9 X
2 y" m* V: z$ V. M7 R
6 z; Y( R8 T  Q) O- ]7 H3 u其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
- s3 ^  `1 t( W2 ]8 s; W然后,在这个所在路径的目录下创建一个文件: vhost.map
/ T' b, T4 E, l& r- K. \# m3 V! t内容为:
+ l3 [1 ~2 s$ w- v0 Q/ s/ d5 o  o
www.domain.com /usr/local/www/data-dist/domain5 K' W3 ]& V% R
bbs.domain.com /usr/local/www/data-dist/bbs: y! o- z- O. [% R3 s
anyname.domain.com /usr/local/www/data-dist/anyname# X4 v8 c1 V2 [
0 k! ]' P" J5 M; B1 P3 N* z
以上部分都是:” 域名+空格+绝对路径” 的形式。
4 O) T& G; |3 ]0 ]4 U" P0 V0 p8 P7 n9 P  G  D+ V1 d
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:. t& X( o% A/ k4 s, N: N
domain , bbs , anyname 等等,理论上可以无限。
3 L7 r) C* B! Z  ]/ ~8 }' Y" ?9 k# _* U  K: G7 G- l" o, E
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以8 d& Y5 Q* w: F- \/ l: _' b9 D
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
9 z0 X4 Y0 x" L$ F5 ?/ c/ K) R0 k1 t3 b6 F* |  r
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。, b5 I  ~% i! [6 U" q% t, o
第二步:打配置文件尾部加上5 K8 g" A# g+ e! o, A4 y  m
RewriteEngine on
' c; y$ X+ p; S7 [# o* f# lRewriteMap lowercase int:tolower6 Y0 @4 Q  y3 u  x! f% m# {
#定义映像文件
* Z, M9 c# a5 Q3 n4 w" B- b  z7 QRewriteMap vhost txt:/apache/vhost/vhost.map
/ E* Q+ q* w" o' O# ?. d#处理变名
+ o$ I9 q! e. [1 }- i% x6 F' |RewriteCond %{REQUEST_URI} !^/icons/
  }3 G9 ^& U2 T" k: o# }RewriteCond %{REQUEST_URI} !^/cgi-bin/
4 q, z) B+ K2 n3 {7 |+ e9 CRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$% e! L: L& J- `$ X! t7 v
这里做基于文件的重新映射
% Y0 [0 D* a% |4 c' K# T# cRewriteCond ${vhost:%1} ^(/.*)$
2 t8 d9 o& P* [' Y- P! g& A. PRewriteRule ^/(.*)$ %1/$1# d# l, r9 F# |: d9 s/ W
RewriteCond %{REQUEST_URI} ^/cgi-bin/
  V+ R8 d/ R5 S* @RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 ^; n  Q( q; E- x: K
RewriteCond ${vhost:%1} ^(/.*)$
5 B$ [" T, u- G. \RewriteRule ^/(.*)$ %1/cgi-bin/$1- ?4 Q# f  L2 l1 V# M
8 j+ c9 W" u+ Q; H# ^3 ~
注意:vhost.map文件是域名和空间映像的文件,格式如下: & v1 ]# D0 Q4 S
www.abc.com /vhostusr/www.abc.com' k6 Y3 ~7 f. z- k# F; b% o
www.xyz.com /vhostuser/www.xyz.com
0 B+ o9 G8 o( ]" y4 j4 X1 J& N0 owww.cccbbbb.net /vhostuser/www.ccbbbb.net
: e2 i0 D4 ?9 u3 l5 ~/ F  |% j1 Q.& G: ^; w1 h' @% g+ g: O
.' a. M: [0 F% q; R" ~2 B9 ]3 P
.: ^0 P- T' C+ H8 T
.
5 g) Z( S6 J+ M$ t(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)8 L* b) V, V  x, r8 I% }% W* @
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
# T1 X& U4 t8 {4 k其实这个可以用php脚本来完成的,很简单的~~呵呵~~~6 k$ a2 }; X/ s/ X. K3 M8 I) I) m
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
5 O$ M8 d$ O6 ?+ }( M- N; u==============================================
  G: D7 E& C5 w: d+ u, ^: K方法二、
' I/ v2 T# c" \& b: g2 D- ]" G5 i: G$ E4 |% Q
8 N3 M- j& g- ~% d5 r  ?/ f* t6 O
rewriteengine on* u- N* g7 Q6 z
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
0 {+ N& Q, Q2 O9 _" B# q8 Drewriterule ^(.+) %{HTTP_HOST}$1 [C]. D3 E. o9 m8 j: {+ ~7 h
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
$ v: z3 \% v* v6 n/ N0 u其他配置文件" M9 n1 k! c" K7 C

% \: c% H5 W; o% v+ F, O, l接着在DNS中开设一个泛解析到对应的IP地址。
/ u, H# o, Z% E+ u# s) y就可以实现下面的方案。
; h4 |6 b) Y: k; n; f& u% d( l! j* R
域名:domain.com$ u$ D! m7 M9 R* E. b; r
绝对路径:/home/domain.com/- C, b) G& Q: S% ?( x2 n
www.domain.com 自动解析到 /home/domain.com/www/% t6 K$ [5 m: P1 i( m
abc.domain.com 自动解析到 /home/domain.com/abc/
3 K- v+ g6 R( l9 b( D等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹9 d1 {" }" P9 V  [( p
直接建立子域名名称的文件夹即可使用。不需重启apache。

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