返回列表 发帖

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
, ?0 w; M3 r/ a9 H% R. A( _2 _& w- P4 Y1 j
RewriteEngine on% O* U6 j+ ]" L2 H
RewriteMap lowercase int:tolower$ P. i+ y# e( j2 w& H/ O$ S0 m
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map- l, K3 z, t- B- q, n( R
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
. K5 c3 A/ q3 K' W" i, ?" RRewriteCond ${vhost:%1} ^(/.*)$
; q: c- |. }: j; |) ^1 SRewriteRule ^/(.*)$ %1/$14 m! M2 v9 m$ K  {; N' f( f) `
5 n6 A; K) a' G) J! ?! n

5 A+ p8 x/ T& m5 _5 S- T5 ?其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
2 @) N+ I/ s9 O) P, |% k然后,在这个所在路径的目录下创建一个文件: vhost.map
) Q3 X& ?" E$ ?) ~1 t内容为:
' S' M% U8 Q5 V& H; y: z1 ^7 c- B; H+ Y2 D, ]; G
www.domain.com /usr/local/www/data-dist/domain0 [: K4 t- R0 E5 i$ I! V
bbs.domain.com /usr/local/www/data-dist/bbs
& q9 K' f( P6 q) F# q+ T$ Sanyname.domain.com /usr/local/www/data-dist/anyname' o9 z# Q/ V3 \7 L/ J7 v
' q/ t& a# u; @/ F( l$ ^# C
以上部分都是:” 域名+空格+绝对路径” 的形式。
; Q8 V3 T# i- y% J2 K6 D
5 U# u$ n, Y* @6 t( R4 r最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:* F- a! r# ^8 u
domain , bbs , anyname 等等,理论上可以无限。+ I4 |  ?0 y, b' F7 F8 ^
1 q" V0 W# w: |
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
! N% h# c6 O4 T6 J随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。+ O% W' Y* ~! T! X
7 A5 F) e4 L& U8 {: I
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
: v$ B& ^6 G$ f9 O; ^  {第二步:打配置文件尾部加上# i. D4 \% o' q3 M5 ^$ G
RewriteEngine on
  r. O9 `# r7 \RewriteMap lowercase int:tolower# X& R5 x- S8 W% H$ Q0 s
#定义映像文件( c0 A$ M  T; w
RewriteMap vhost txt:/apache/vhost/vhost.map
2 l$ t4 z/ {& y. r! M) w#处理变名
6 a% Z, y3 J7 E" J- [# k$ LRewriteCond %{REQUEST_URI} !^/icons/# Z: l% J  D! @7 u: W' M
RewriteCond %{REQUEST_URI} !^/cgi-bin/
; w) H5 O. k7 M7 y6 n0 k. S0 hRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
! ~! l% g$ O8 {& `- v* p这里做基于文件的重新映射+ |" P: {/ g. M; K" {
RewriteCond ${vhost:%1} ^(/.*)$1 B4 l% O( ^# D+ Z3 M* R
RewriteRule ^/(.*)$ %1/$1
7 J, a) K* m1 N3 W$ O5 p% ~: m1 f) I- QRewriteCond %{REQUEST_URI} ^/cgi-bin/
2 Q0 S+ [2 K( @$ V: X* uRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
. ~- D) t7 l3 k; t1 hRewriteCond ${vhost:%1} ^(/.*)$. O2 h5 X/ F& |6 |2 B* \, T
RewriteRule ^/(.*)$ %1/cgi-bin/$16 t' Z. y( {% O" k2 K
) s3 l7 E. U% I9 d
注意:vhost.map文件是域名和空间映像的文件,格式如下: * N$ ]5 ^' H  }, ~  @( I
www.abc.com /vhostusr/www.abc.com
' L6 d; L3 M! {6 mwww.xyz.com /vhostuser/www.xyz.com6 \. q% ?% l' z% W
www.cccbbbb.net /vhostuser/www.ccbbbb.net
- v& N9 W& \  k.
' d; D! a8 I$ E1 x! D.0 w$ @0 q. Z8 c2 n' C9 p
.  @/ Y2 I+ j! N0 `4 |
.
, c. Z2 P5 ]7 K(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)+ R8 n9 Y! V7 p: i
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
# X" i. ^: {/ f其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
( n! d) Y' v+ P注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
. u5 [4 S1 _' v# B; ^& H4 f==============================================7 k  v) b* T* j* L1 b
方法二、
9 P3 t" I2 d/ o0 f, d+ ]
8 B5 q: P0 o- A9 G% ]: Y  ^# x( C7 U6 Y# n7 K; n  A4 F1 G0 q* C  N
rewriteengine on
1 c1 {9 j+ u5 ?1 W  Qrewritecond %{HTTP_HOST} [^.]+\.域名\.com$2 z* a; p$ K1 e2 c; }0 x' O
rewriterule ^(.+) %{HTTP_HOST}$1 [C]# ~7 d6 h/ s0 H9 e  d8 V1 T. g/ P
rewriterule ([^.]+)\.域名\.com(.*) /$1$28 M- M) L' p) G3 z  Y7 e
其他配置文件
  R- O* w& |7 `  c4 S
" b& n' U% `5 |# F3 h) D接着在DNS中开设一个泛解析到对应的IP地址。
6 j. o7 |. |  b) u4 e5 ?! i9 R就可以实现下面的方案。
, ~" w3 p# _6 k5 z- x& l
; k. a) _2 c  Q, c% p% @9 r$ H域名:domain.com
4 O9 w9 z4 z6 I/ _绝对路径:/home/domain.com/: N- m9 P: U' T. E+ _" j% j
www.domain.com 自动解析到 /home/domain.com/www/4 @1 D9 }8 L1 O6 ~6 R
abc.domain.com 自动解析到 /home/domain.com/abc// k/ D- k' V; |/ e4 ?
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
* M4 M& f& l5 ]4 P& Y直接建立子域名名称的文件夹即可使用。不需重启apache。

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