返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:# ]0 j( p% `# E2 Y& _% @; n/ y
( e. q+ b5 ^3 s1 I; i$ C2 f( q
RewriteEngine on6 u$ H. B. o3 s; K$ h5 i
RewriteMap lowercase int:tolower
# S# a" y3 M& M1 K; H7 sRewriteMap vhost txt:/usr/local/etc/apache/vhost.map8 R! y7 g7 Y+ K3 L) l% K9 H' {
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# R  H& J4 p9 C" {+ D* {+ KRewriteCond ${vhost:%1} ^(/.*)$1 V& a' }0 b0 d& t
RewriteRule ^/(.*)$ %1/$1
/ Q% w) X- u% ~" j6 m" X7 \, [/ W& w
: I! `; d# V( Q5 [/ L
( T: {  ?: e( J+ e* b其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。5 U$ }! j) E' x: [' Z9 O9 H$ k1 Y
然后,在这个所在路径的目录下创建一个文件: vhost.map
! R' }# B% \, ]2 S内容为:4 O! J; d# w0 V) ~7 i) w0 G1 M3 f

% Q+ e9 y: o% p7 U! r2 Iwww.domain.com /usr/local/www/data-dist/domain
  x% ^" h) i( Q: xbbs.domain.com /usr/local/www/data-dist/bbs
2 {4 H% R0 q: {4 t* y$ ]  zanyname.domain.com /usr/local/www/data-dist/anyname
" J% y' z# Z2 C% }2 }) t: J
' Z* i- |) s8 M8 ?; U以上部分都是:” 域名+空格+绝对路径” 的形式。! \: ?. l' g- H
( |9 V9 n* F( Y) H3 o
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:1 U  u6 V; s+ h+ G
domain , bbs , anyname 等等,理论上可以无限。
7 r/ ~) ]* ^. A. A$ }) p" |! Y' K
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以; L' L& ]; ?- h. e! w
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
9 K3 r& V; \1 Q' L/ Z' K
% o( u2 n5 \0 F! t& l第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。5 \. Y2 m7 s1 t
第二步:打配置文件尾部加上, g& J; `: ?2 v! l" K
RewriteEngine on% Z8 |9 L6 j/ d
RewriteMap lowercase int:tolower) @! j' d, P% J+ h: ^$ X, ^& ^
#定义映像文件
2 U1 P  ^. F* }5 PRewriteMap vhost txt:/apache/vhost/vhost.map. z: \' V+ i4 R+ c( J
#处理变名
  O* p3 |3 v1 c7 eRewriteCond %{REQUEST_URI} !^/icons/
2 Z( d% d% ]" V. \, _+ m& PRewriteCond %{REQUEST_URI} !^/cgi-bin/
$ x: m2 j6 O; J3 F/ B' c; hRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$7 [4 Z4 U& O$ Z, v
这里做基于文件的重新映射( `9 T! W5 |, Q( f+ i. }$ n
RewriteCond ${vhost:%1} ^(/.*)$! e: c& }- y- c. Q2 V  B! A7 m* d( b
RewriteRule ^/(.*)$ %1/$1
4 T! l; ~: n9 R; ~0 Z" w7 cRewriteCond %{REQUEST_URI} ^/cgi-bin/  B; r/ q, X& T
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$' f2 V$ p. n  R0 n4 H, P
RewriteCond ${vhost:%1} ^(/.*)$
' A& D6 d1 k  X5 ^RewriteRule ^/(.*)$ %1/cgi-bin/$19 `) P  x  j, Z0 b8 s* e* \
* g6 U8 M7 {( M7 I) ?* i  ^
注意:vhost.map文件是域名和空间映像的文件,格式如下: ' b; g. |  l4 \  U0 m" ?
www.abc.com /vhostusr/www.abc.com
" }9 N0 I1 M! }. o: O# hwww.xyz.com /vhostuser/www.xyz.com! q/ S" J4 I: W) ~) l6 B$ K
www.cccbbbb.net /vhostuser/www.ccbbbb.net- D2 f8 I  [, }
.
  j( @, L/ x, |* Z.
6 {! `3 W# Z: `" X1 }  l! Y$ ~2 _( f.5 ~$ M2 p+ }% q/ c
.
; k4 G- f5 U; a4 Q(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)! z% a* d& Q4 J: T: X( u; S) K
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
+ n" k2 Y: H8 `+ j3 ?+ Z/ B其实这个可以用php脚本来完成的,很简单的~~呵呵~~~& X$ i1 [( {$ S6 ^# _
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
3 V" `- M2 o8 {1 ]; P) q==============================================/ {5 f) L, Z9 k0 X  X
方法二、
' `9 H& L5 b" Y; Q. j" g" d
1 p; X1 h9 }) |
4 _% b( B2 K5 U6 Z; hrewriteengine on
: z6 X" y3 M/ v  T2 {. Rrewritecond %{HTTP_HOST} [^.]+\.域名\.com$
3 F2 I" g9 q( t8 }7 w0 grewriterule ^(.+) %{HTTP_HOST}$1 [C]1 F; X! l$ I# a) b7 ]! O# M
rewriterule ([^.]+)\.域名\.com(.*) /$1$2( z6 h1 }7 q/ z7 Y1 W4 T
其他配置文件
( m+ y& |5 E3 d% v0 V* V: Z
6 f- C- ~/ i- A. g. t/ D接着在DNS中开设一个泛解析到对应的IP地址。  Z% c. E4 K& z; A
就可以实现下面的方案。
( u; [6 H) S3 ]3 |  {; A. p; I
$ m) h6 H, L# o& k5 J' U域名:domain.com
. d4 T- k- G9 C6 ~, p绝对路径:/home/domain.com/  R: k: f. X$ [2 |2 @1 I
www.domain.com 自动解析到 /home/domain.com/www/
# F8 J/ \& k% }5 {4 \2 nabc.domain.com 自动解析到 /home/domain.com/abc/
3 C7 ~2 c; k, O等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹) _! L' ?5 ], s3 {6 k, b$ p
直接建立子域名名称的文件夹即可使用。不需重启apache。

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