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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
1 w, M) s+ `6 H3 l' }
! v7 l) I) M  r+ N8 A' ]* g, M+ o( l2 WRewriteEngine on" W9 ^- F$ g% v- Y, f
RewriteMap lowercase int:tolower+ D0 \; T% i2 V- o
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map; f5 O8 B' O7 p- I& Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$3 H+ i! B" G6 j9 V) t9 s7 O
RewriteCond ${vhost:%1} ^(/.*)$
1 {+ F4 f1 r8 W. e. l  LRewriteRule ^/(.*)$ %1/$1  g& e9 B4 p, l- p2 ?
  `0 P* K" N8 L3 N+ t  G2 E

% f! v4 a! X: }! ^其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。4 \* X; x2 \& r5 H9 W
然后,在这个所在路径的目录下创建一个文件: vhost.map
/ |8 ~# i9 J/ _9 \0 F& A内容为:
& r5 ^3 z8 O% \/ ^* b4 T
  {. Q' I# g- g. Z5 Zwww.domain.com /usr/local/www/data-dist/domain$ z4 V  d' E0 p; N4 N/ S
bbs.domain.com /usr/local/www/data-dist/bbs* X# p. Q6 K( y5 e* ^
anyname.domain.com /usr/local/www/data-dist/anyname
% @& [) m* n) M5 d& x7 S  S' v0 k% B" _: J5 `
以上部分都是:” 域名+空格+绝对路径” 的形式。! `0 `: c; R7 B
' X5 i0 q8 R( l& y' v
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:: D1 }5 x' ]* Y( F0 P
domain , bbs , anyname 等等,理论上可以无限。
; G! @4 A& O8 v0 @/ D6 t' m) u# u' {( u7 _
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以" O1 d7 n! n9 T% a0 ]
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。6 H, R4 h0 O/ C4 k* W/ b

- H( R/ e! @' ]8 ?, A  P- L$ U3 \第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
* m! ]6 `' {6 w% @第二步:打配置文件尾部加上
4 v/ O& q0 _- L/ hRewriteEngine on; {, I; P# [! T( `( z7 Q
RewriteMap lowercase int:tolower
+ _+ z9 v" a  D; G1 b, `# r#定义映像文件9 K2 C7 q! g+ _) F# P& O' _
RewriteMap vhost txt:/apache/vhost/vhost.map
1 K" ]1 v4 `7 R* F! Y/ E#处理变名  T- p" X9 D% S1 v8 p
RewriteCond %{REQUEST_URI} !^/icons/# J( I+ l% S$ M9 W1 k: t3 B
RewriteCond %{REQUEST_URI} !^/cgi-bin/
  w- k  t+ j4 x) m5 V# z/ LRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$5 ]( p7 f+ t% j, B9 @. A$ O
这里做基于文件的重新映射7 p4 q6 u# {. u6 @) b5 O% G  A
RewriteCond ${vhost:%1} ^(/.*)$
, M3 _' Z, v: d& ERewriteRule ^/(.*)$ %1/$1+ `6 f! ]/ S1 ~
RewriteCond %{REQUEST_URI} ^/cgi-bin/
& `1 ]! C; ^. V" u8 f$ J. uRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$6 l0 H0 P* S: h: h2 ?1 ]" J* Z
RewriteCond ${vhost:%1} ^(/.*)$" i# m2 v! P( a' g$ p) m7 M: ~
RewriteRule ^/(.*)$ %1/cgi-bin/$1
! v# |: U# @- Y& n5 y6 Q
% G" W1 M1 G) r注意:vhost.map文件是域名和空间映像的文件,格式如下: 0 E. n4 Y8 y/ f. J8 p3 C; C- G5 `
www.abc.com /vhostusr/www.abc.com
2 ]- b5 l2 H& S$ e: Vwww.xyz.com /vhostuser/www.xyz.com
% X; I4 k/ L6 G  T* l8 @! \. Nwww.cccbbbb.net /vhostuser/www.ccbbbb.net; [: C1 t( f2 S) Z! \
.8 G3 e& \0 n% I) k: b* \1 k! v- i
.5 Y, E$ y* _% e' I
.& x. S) P' s& t
.
' h! O. Q5 V+ l(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟), H6 }5 q& D/ K) E
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
' w' D6 \+ n" r$ h- [6 L其实这个可以用php脚本来完成的,很简单的~~呵呵~~~; o- i! ~# j9 r$ ]
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
* E( w& |5 \  d2 x& x8 \==============================================
: d- H5 k8 n& x! z% g方法二、( b5 x* y& m- b, y
9 h: |: n. U6 l. l( @2 n0 u
! |$ r! x$ ~3 w8 a  {
rewriteengine on
/ J1 \3 E0 O- k" X9 O& t+ Grewritecond %{HTTP_HOST} [^.]+\.域名\.com$
5 N4 e4 {; `! T, Prewriterule ^(.+) %{HTTP_HOST}$1 [C]
; w8 Y( i& u: b8 ~5 s% Prewriterule ([^.]+)\.域名\.com(.*) /$1$2
  a) s, x3 C; v8 z其他配置文件
* `2 _7 g6 ~% t& c( [5 L' K8 t7 R  {, L* X  s
接着在DNS中开设一个泛解析到对应的IP地址。
4 ]  E$ r; n. F' I就可以实现下面的方案。* U" g% i6 y* |2 {0 ?  N

' c  J! Z% B8 f9 |5 m# x域名:domain.com
; g4 z4 U8 ?8 q, v绝对路径:/home/domain.com/
. b8 t! {& Q) D8 E( b; {www.domain.com 自动解析到 /home/domain.com/www/
% v4 @+ `* Q5 ^# n2 M! M' _abc.domain.com 自动解析到 /home/domain.com/abc/  B' P# ]! d3 L0 P* i; u/ k
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
5 s3 ]; i/ ~) F* c直接建立子域名名称的文件夹即可使用。不需重启apache。

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