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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:" d# ?/ a' J4 r6 h) A+ P) k
1 g! i( e4 Q0 C* n
RewriteEngine on, ]. q/ z. K( M& s3 i
RewriteMap lowercase int:tolower: `5 U2 g0 j; m( Q7 @
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map6 E1 {5 D7 S: F  s1 E
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 ]- U2 L6 v/ \2 Y  Q1 L# z
RewriteCond ${vhost:%1} ^(/.*)$
9 ~5 ^" {# Q1 ^- q, E4 C5 _2 _% `1 IRewriteRule ^/(.*)$ %1/$1* E- A5 x4 ^/ v7 A, C

% g/ y6 o, D$ G$ H. k, X
) G& ~! y) J$ S3 A$ A( C- p其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。; {4 c$ ?4 f1 f7 {$ G
然后,在这个所在路径的目录下创建一个文件: vhost.map& d$ r1 K  I8 R$ v2 u  @: z1 O" W5 i
内容为:6 \! |! p8 B3 ~4 W: {8 Z6 s

. q# h2 G" u& y* k9 K/ Awww.domain.com /usr/local/www/data-dist/domain4 B( M$ ~5 x% u7 D1 E5 p% }
bbs.domain.com /usr/local/www/data-dist/bbs1 U4 o6 T3 E' N8 ~' O
anyname.domain.com /usr/local/www/data-dist/anyname
! |! M9 L3 N# e% x4 r8 w. F
' f9 T) }- m8 `  M以上部分都是:” 域名+空格+绝对路径” 的形式。, [& K0 b- y) o1 e

) V( f0 h9 v2 D! N最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
  x6 k; o8 @4 s9 v8 ^& h5 y* Jdomain , bbs , anyname 等等,理论上可以无限。4 A, V9 x" e6 U$ m& `9 X$ Z. Y: t* R

/ ]2 j7 V3 T% N1 E5 M这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以# p) n" k! e2 P  ?: I  K
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。& Q4 L( k2 |9 @! U7 K

- q5 H4 S  M9 d* g第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
" M2 {1 r9 X, J# W: U7 J第二步:打配置文件尾部加上
, [2 u3 I$ |! D' e9 }9 [3 D7 HRewriteEngine on( o. y0 k( y; p5 y! b/ N3 ^
RewriteMap lowercase int:tolower( l) `& X" a' g
#定义映像文件
* b! H3 D7 v$ K! h* C& Z6 GRewriteMap vhost txt:/apache/vhost/vhost.map. i; }& ~& Y* U( G8 q
#处理变名( p, m' p1 E% _& Y7 f$ }* W
RewriteCond %{REQUEST_URI} !^/icons/% ~. h7 b5 D+ x# _, W* b1 `
RewriteCond %{REQUEST_URI} !^/cgi-bin/0 @+ V" W# W" H+ A' y, b
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
& o3 F' Y4 ~' O+ X这里做基于文件的重新映射1 t& s7 G& T5 x
RewriteCond ${vhost:%1} ^(/.*)$
' x( c/ I/ R: MRewriteRule ^/(.*)$ %1/$18 f, d  r. B$ m+ s& ]+ R; M5 y/ P, o
RewriteCond %{REQUEST_URI} ^/cgi-bin/( A2 q7 E8 D' a1 K
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
! m1 ?' Z* E$ C& Z# z) ?. F9 W/ bRewriteCond ${vhost:%1} ^(/.*)$
; w7 m$ a1 k/ K* gRewriteRule ^/(.*)$ %1/cgi-bin/$1
% B* |6 B. _; m. m% L# C
! y/ A) n. i+ X5 C3 @注意:vhost.map文件是域名和空间映像的文件,格式如下: 
9 C/ n7 W/ }# c8 u* e" X+ xwww.abc.com /vhostusr/www.abc.com
% ]# O+ d, p, |' N8 Fwww.xyz.com /vhostuser/www.xyz.com
2 _* B0 T% b6 {5 b9 hwww.cccbbbb.net /vhostuser/www.ccbbbb.net
' s2 }& z7 l1 Z  U.2 g3 {/ Y, `# X) V6 u0 _. d
.
- }/ Q$ F3 e% D: t: C.
8 Q" V+ A0 c- |7 z/ n, s" @.
2 s! G9 d/ Q; m# h(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)8 ?) r1 H( i* B" l" Z
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~6 M" Q0 O, _" E9 z. ]
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~7 y. v4 y+ y* k! s
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~$ [4 c% f- ?# c& P( _
==============================================
0 q- b8 Y, t7 V方法二、* O$ x8 E4 ^) y0 U8 a# C
/ V2 F+ O/ x+ ?/ c: d- w+ Y

+ b) O) ~* V. C( wrewriteengine on0 U4 X7 D6 D8 a  f0 m% |
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$: n, |& E! p3 ]5 T# f! w# @
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
& Q: e- ^% _- Y0 i3 N' ~rewriterule ([^.]+)\.域名\.com(.*) /$1$2
- X" o# d( S8 H/ q! k6 U4 l其他配置文件
! F" b# @, z$ G1 X* |
" \( N& s6 O* U0 ]7 t  [4 U接着在DNS中开设一个泛解析到对应的IP地址。
+ l, o% O; [( D8 X0 g就可以实现下面的方案。& J) ]3 y  ]8 f7 V1 e) g# m

0 G. Y1 X8 @( t8 O2 P: ^4 v2 U. }域名:domain.com
8 Z% l. S/ M3 A0 Z: j% |6 ~* j绝对路径:/home/domain.com/4 }0 U+ e8 N7 \; d, x' Q
www.domain.com 自动解析到 /home/domain.com/www/0 h) m- }: n' m4 u9 r
abc.domain.com 自动解析到 /home/domain.com/abc/+ t3 C, o" W. q
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹6 f! ?6 L: U+ p( i
直接建立子域名名称的文件夹即可使用。不需重启apache。

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