捌玖网络工作室's Archiver

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

独立主机Apache 配置二级域名

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
3F)p O1z;q 7O+qH'B c k8g
RewriteEngine on
3XA9`a9Ex0d CTJ RewriteMap lowercase int:tolower
9Pxk)R^Gw,{ RewriteMap vhost txt:/usr/local/etc/apache/vhost.map8kO? Zk8I\"L'Y
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
C cXO$K RewriteCond ${vhost:%1} ^(/.*)$K)wX3eZ^
RewriteRule ^/(.*)$ %1/$1Gaj ?l6V2A

PjV(`x T&x~o\#h%d!f%S m
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
jG7R'wf K!^`f3CQ 然后,在这个所在路径的目录下创建一个文件: vhost.map
_4a} \&y!zY de3uE 内容为:XAh0_4g&xmj'I

L;gCh.Jr$du [url=http://www.domain.com/][size=2][color=#000033]www.domain.com[/color][/size][/url] /usr/local/www/data-dist/domain
*} z gt)V6su!H A bbs.domain.com /usr/local/www/data-dist/bbs
\6G\2~ @8P anyname.domain.com /usr/local/www/data-dist/anyname
)y [(a-Y:hT;F-]q"Sp:@ z'L"[g1r
以上部分都是:” 域名+空格+绝对路径” 的形式。1U+X6Q5^T_/s+Y

0ZeV*`~ns 最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:4J(W|l:j5VyH
domain , bbs , anyname 等等,理论上可以无限。
}6QX,{-sjQ1h d5H+S;gMFW|
这样,通过浏览器,访问 [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 目录下的文件。而且,你可以
3H aJ9j'Zq0}6r 随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
V"z k1P;|
m*o'k"b mn:o.a 第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。p AQ3}/o4h `/?.j
第二步:打配置文件尾部加上
-v,YWfvBtF RewriteEngine on
4y;cGx$E9`W)I RewriteMap lowercase int:tolower
9]t3C?(s*`0Y6?'iB S #定义映像文件
} J7HaW5t0AX RewriteMap vhost txt:/apache/vhost/vhost.map
] TNN"e{Kg #处理变名pg\!r,G8e&L&m;u
RewriteCond %{REQUEST_URI} !^/icons/U*B*v'D)O0PDC
RewriteCond %{REQUEST_URI} !^/cgi-bin/3L0@;G!j s
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$e;Zm*~RR*b
这里做基于文件的重新映射
2v:Z*qoZl RewriteCond ${vhost:%1} ^(/.*)$
&C+U `_^@C J RewriteRule ^/(.*)$ %1/$1
d3{,Ii9v Sm RewriteCond %{REQUEST_URI} ^/cgi-bin/TIN)o"G1M
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
}:f/QQ'^m#JdBw RewriteCond ${vhost:%1} ^(/.*)$
E:g V0jH RewriteRule ^/(.*)$ %1/cgi-bin/$1
/{$bv'p%?*X ,[:?&k)k eC"v.dH
注意:vhost.map文件是域名和空间映像的文件,格式如下: 
/?%w:d:?dd/b,gc [url=http://www.abc.com/][size=2][color=#000033]www.abc.com[/color][/size][/url] /vhostusr/www.abc.com
o2S`~1?)Dq%}e? [url=http://www.xyz.com/][size=2][color=#000033]www.xyz.com[/color][/size][/url] /vhostuser/www.xyz.com
(S"y3IWK$Ub)] [url=http://www.cccbbbb.net/][size=2][color=#000033]www.cccbbbb.net[/color][/size][/url] /vhostuser/www.ccbbbb.net
(r^0x|5iXb ./IH ]3]5X\
.~7i_z%_K%]
.v2Ns:Zt?1y
.
k TF+F.s3wX @*R6TS (你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟),n h.d KJ5|1n
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~#hl0\c1sf2zygf
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
*x_.Aa"R*}W'M-PS1DE 注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~)R;HU~"H1B5m
==============================================
`5AR7Q-RL%y a_,J 方法二、B)dr*T!_jeR6L

f+v+k-Hxod"iw 8ay&qb.`
rewriteengine on#M{!r?1I}
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
uZuq:q rewriterule ^(.+) %{HTTP_HOST}$1 [C]
F _X9X*Y\ jCq&N rewriterule ([^.]+)\.域名\.com(.*) /$1$2
.AX B6SGbDFu 其他配置文件a7?0n\9qjW$C

RR/li!rN n;E"wF 接着在DNS中开设一个泛解析到对应的IP地址。
#LZ Z$Y9|,kJ&a:V? 就可以实现下面的方案。
Z*A2} pH *N8^ Is'Pl&p$u9u
域名:domain.com
V Q%H%we,B+M@ 绝对路径:/home/domain.com/
nC.CD I x*`}g [url=http://www.domain.com/][size=2][color=#000033]www.domain.com[/color][/size][/url] 自动解析到 /home/domain.com/www/
%l1{jtw`] Q1ST abc.domain.com 自动解析到 /home/domain.com/abc/4w3gD[(Q-t-J P
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
{7f+t_8J\&[ ss0G 直接建立子域名名称的文件夹即可使用。不需重启apache。

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


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