|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14441
- 金币
- 2506
- 威望
- 1647
- 贡献
- 1454
|
独立主机Apache 配置二级域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
) _' |8 H. S. ^8 _4 K9 B$ ?0 ~+ F, j/ D
RewriteEngine on
$ h$ A% P7 f3 S5 [. e! v, ]RewriteMap lowercase int:tolower& u- B8 M/ f3 |" s z. Z
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
1 G+ E* t5 [: T' o3 V: ?6 H3 ?RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
' @! _+ H+ T9 r5 x6 l5 j( J: HRewriteCond ${vhost:%1} ^(/.*)$9 `, N5 J& `& C' V4 X/ Q
RewriteRule ^/(.*)$ %1/$1
9 [8 o' V2 E. u' l! T* J8 [
1 s& h! \2 r- T4 e: ~) c: Y- Q8 y: }( N* E
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
7 b. k3 V2 \& P# P* L1 ]8 i/ p+ Q& h然后,在这个所在路径的目录下创建一个文件: vhost.map) {! o- X* j0 G6 D; B8 g9 H4 c9 }
内容为:0 a" j* Q* h( }/ }- p1 b' l
1 F U/ d0 S5 V. W, _- awww.domain.com /usr/local/www/data-dist/domain
8 }* R; T6 f/ c2 K! ]" Ybbs.domain.com /usr/local/www/data-dist/bbs
3 p3 X) N- c$ R' m# V8 \, S3 ?anyname.domain.com /usr/local/www/data-dist/anyname" }- e( ?( d- X% }/ g* @+ f9 ^ ]
4 \% [: g: s3 P0 H4 i' ?5 s2 v以上部分都是:” 域名+空格+绝对路径” 的形式。6 l; T- z+ b" P; N
; q& f* ]' C4 L8 f0 K* A, ?3 N8 O最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
4 n7 F( j1 N0 k/ `domain , bbs , anyname 等等,理论上可以无限。+ \; z8 Q9 ~. E" h- }
}! u* U6 ? z
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以! t0 C0 L" F+ b
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。. a& U. i. y! X# z3 n
* G* w1 J" `7 v0 e' B9 Q' D! w第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
* x1 G; j7 u0 |3 j$ M第二步:打配置文件尾部加上1 V7 D/ A9 X% r. n1 F
RewriteEngine on
1 P) `* c$ Y" p4 b: O1 vRewriteMap lowercase int:tolower6 k. s& H" e) x: y8 i0 _* K" R
#定义映像文件9 }' j+ B' h0 U2 ^
RewriteMap vhost txt:/apache/vhost/vhost.map
& L+ ^* y" E( u" F' b#处理变名
, H1 Z) D# H7 F0 ], aRewriteCond %{REQUEST_URI} !^/icons/( Q3 R u" w8 {: F" m2 O: z/ _
RewriteCond %{REQUEST_URI} !^/cgi-bin/
% f' `( o/ f- K% i0 O: u G, Q# q- g5 o2 RRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$$ s# S" T% [$ b# w+ ^6 D
这里做基于文件的重新映射
7 Y8 O/ P& w3 E; @( h7 C, HRewriteCond ${vhost:%1} ^(/.*)$. O- q8 a" l' c+ D1 `
RewriteRule ^/(.*)$ %1/$1) B0 F5 L7 }: G2 A
RewriteCond %{REQUEST_URI} ^/cgi-bin/
% H4 k g8 N% f' r; j4 ~7 m" A! ^RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
9 P6 ^/ }; A# X& @6 TRewriteCond ${vhost:%1} ^(/.*)$2 k- _8 Y1 _+ C! r! l* w& R
RewriteRule ^/(.*)$ %1/cgi-bin/$18 t# J; X4 V- A" N& H& V
6 {& e+ h) `& x1 g( {4 }8 R! J
注意:vhost.map文件是域名和空间映像的文件,格式如下: 7 p8 _0 Z( h& U3 k1 [7 k0 c
www.abc.com /vhostusr/www.abc.com
% M' C3 L0 p C0 D' H# jwww.xyz.com /vhostuser/www.xyz.com
$ X5 Q* ~& \* \- d% X$ dwww.cccbbbb.net /vhostuser/www.ccbbbb.net! h! w; R7 o* Z3 c2 o% Z. S6 V0 N
.4 _; F+ C/ ~( B2 ?7 u) Z
.0 l e: h# m2 X6 m2 T4 P
.
+ v6 B& w7 B( v9 \3 j' s.
9 U, K/ ]4 M0 w6 B(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)& n8 U( F' g, V+ H6 g& x4 }" V
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~/ I$ m, w- |' G) T
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~( _9 A3 N9 B% s7 h& N& h
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~5 [' o% |$ j7 y
==============================================
6 i( b* \; _) p% T; J6 p方法二、8 Q5 Y. Y# Y3 j9 ]0 r' ~
, Y# a8 i: C' W& _0 F( i
3 B# f9 D! j* Z7 F# `7 Grewriteengine on! y4 D! n$ g O2 I+ t7 e5 k
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
o! w) z& U/ O+ Drewriterule ^(.+) %{HTTP_HOST}$1 [C]9 b0 ]; z- C, J A
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
3 F2 x/ l2 ~0 g* Y6 O其他配置文件9 Z& t% A" p4 |+ o! |- Y7 D! e
. e0 S! T) w; B4 M4 k9 K
接着在DNS中开设一个泛解析到对应的IP地址。
, l$ x6 Y [) t就可以实现下面的方案。
3 F, W' k# j8 M3 ^; l
2 k' i9 |! x3 ~! t5 F6 Q域名:domain.com
' }* b: e# g' J绝对路径:/home/domain.com/
5 L3 f1 Q% ~. [4 Twww.domain.com 自动解析到 /home/domain.com/www/( s6 h/ w( f& G
abc.domain.com 自动解析到 /home/domain.com/abc/
( x+ s* B$ j: x i$ ]等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
( y. L# T) d; l1 R% R直接建立子域名名称的文件夹即可使用。不需重启apache。 |
|