捌玖网络工作室's Archiver

admin 发表于 2009-4-26 19:44

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:%vHaBSO$Q \C

[$U3w7\!a9jc.G3W RewriteEngine on(e0q6b]4W3[t
RewriteMap lowercase int:tolowert{F2PfG)U/J1G G
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
`"o4S.k}9Mx#C}!_ RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
v |x.~$w2S9u RewriteCond ${vhost:%1} ^(/.*)$7E Qhh-X_} S8| EN UF
RewriteRule ^/(.*)$ %1/$1
&v;@^&b3NN8T*M.x0j;Q Oy4^-X5fq)J
:N3rP r.m"v-Z
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
9E*` gbq3p0Z/y 然后,在这个所在路径的目录下创建一个文件: vhost.map6z9Q F'?nN6r
内容为:K$uX"d{$@jy`y
s.`k i-H-U
[url=http://www.domain.com/][size=2][color=#000033]www.domain.com[/color][/size][/url] /usr/local/www/data-dist/domain
Hu ``#\ E!| bbs.domain.com /usr/local/www/data-dist/bbs
^&t%O7{S%GU)v~ anyname.domain.com /usr/local/www/data-dist/anyname V3zrV!WBu

sA)B kG 以上部分都是:” 域名+空格+绝对路径” 的形式。
iZ_Ft cS*bwjS
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
!TXH oY domain , bbs , anyname 等等,理论上可以无限。hnBu[mw

lO3g"i;o$sg 这样,通过浏览器,访问 [url=http://www.domain.com/][size=2][color=#000033]www.domain.com[/color][/size][/url] 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以v7S4s5`,D-A6\Nw
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
s2M)`e({4l;s3rW d
:l%~ N+bzp 第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。 d"i V0dk
第二步:打配置文件尾部加上Q:HeDa
RewriteEngine on
e#z6EoNU8C RewriteMap lowercase int:tolower A)a_w,F_ N:S6l%us
#定义映像文件!X5UA(SE+a;{L
RewriteMap vhost txt:/apache/vhost/vhost.maprD9V h.o R*X4PE7J3W3t
#处理变名gh#O fB6f9} w u
RewriteCond %{REQUEST_URI} !^/icons/
"v@aEa/Zcd RewriteCond %{REQUEST_URI} !^/cgi-bin/
m.U9NWF!P)G,v RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ @ RUIw6v?
这里做基于文件的重新映射
x2f&f/A"K:b RewriteCond ${vhost:%1} ^(/.*)$ Y"q7X.}!J7@ g1i#c
RewriteRule ^/(.*)$ %1/$1d h2`B*E:X^TH
RewriteCond %{REQUEST_URI} ^/cgi-bin/
.PN4OLj:P| RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
K%@ D5c%x RewriteCond ${vhost:%1} ^(/.*)$
d_Iy3T RewriteRule ^/(.*)$ %1/cgi-bin/$1.l7n K1e1kgV3I

m4]T U:^o9aT;^ 注意:vhost.map文件是域名和空间映像的文件,格式如下: G4p3P~c7I;k0Z
[url=http://www.abc.com/][size=2][color=#000033]www.abc.com[/color][/size][/url] /vhostusr/www.abc.comS*QjH0A#Q[y
[url=http://www.xyz.com/][size=2][color=#000033]www.xyz.com[/color][/size][/url] /vhostuser/www.xyz.com-W^wa R"^
[url=http://www.cccbbbb.net/][size=2][color=#000033]www.cccbbbb.net[/color][/size][/url] /vhostuser/www.ccbbbb.net,sf0V1gM1Z\6hV7j1~
.5n n"R#td!{'L
.!y7a.e ggq'j
.Y'v5\.Yt@4_4B Co
.%Q:A+f2n.X&T9h
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
+jhF8jMd%na 第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
y&Anc4u 其实这个可以用php脚本来完成的,很简单的~~呵呵~~~W V}@:N7PV/n
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~Pp @J\Z
==============================================F9wI%@3R
方法二、
[}d1mL'oE
j5s tK5T p,R5Z 7v'VJ1bD!pJ
rewriteengine on+j g)fM?S9g]C
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$C,KI^Aug.t4^2b+b
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
*Vg:\$E:e3_%S rewriterule ([^.]+)\.域名\.com(.*) /$1$29Z Uo.P`]'? bs/f
其他配置文件1S$^wc.HaIKH

ZD-m\#U ]-oM'c 接着在DNS中开设一个泛解析到对应的IP地址。:J.vJ$Lj'd
就可以实现下面的方案。
F|R0y&Q&KWh
!Bo(H$|z3x"by 域名:domain.com
+P@{7L%Qz3Y 绝对路径:/home/domain.com/
R"P:\3]{Xj [url=http://www.domain.com/][size=2][color=#000033]www.domain.com[/color][/size][/url] 自动解析到 /home/domain.com/www/
/Tj4y;n1mA*sj7V&x abc.domain.com 自动解析到 /home/domain.com/abc/7f9aP q kB8N
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹-o^D;H7?/e"?9C
直接建立子域名名称的文件夹即可使用。不需重启apache。

页: [1]
【捌玖网络】已经运行:


Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.