代码
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:
RewriteEngine on
RewriteMap lowercase int :tolower
RewriteMap vhost txt: / usr / local / etc / apache / vhost.map
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / $ 1
其中的 / usr / local / etc / apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
内容为:
www.domain.com / usr / local / www / data - dist / domain
bbs.domain.com / usr / local / www / data - dist / bbs
anyname.domain.com / usr / local / www / data - dist / anyname
以上部分都是:” 域名 + 空格 + 绝对路径” 的形式。
最后,在你的网站根目录 / usr / local / www / data - dist 下,创建对应目录:
domain , bbs , anyname 等等,理论上可以无限。
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 / usr / local / www / data - dist / domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 / usr / local / www / data - dist / bbs 目录下的文件。而且,你可以
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules / mod_rewrite.so前面的#号。
第二步:打配置文件尾部加上
RewriteEngine on
RewriteMap lowercase int :tolower
#定义映像文件
RewriteMap vhost txt: / apache / vhost / vhost.map
#处理变名
RewriteCond % {REQUEST_URI} !^/ icons /
RewriteCond % {REQUEST_URI} !^/ cgi - bin /
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
这里做基于文件的重新映射
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / $ 1
RewriteCond % {REQUEST_URI} ^/ cgi - bin /
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / cgi - bin / $ 1
注意:vhost.map文件是域名和空间映像的文件,格式如下:
www.abc.com / vhostusr / www.abc.com
www.xyz.com / vhostuser / www.xyz.com
www.cccbbbb.net / vhostuser / www.ccbbbb.net
www.cncms.com.cn / vhostuser / www.cncms.com.cn
.
.
.
.
(你不会连 / vhostuser / www.abc.com目录也没建吧,会报错的哟)
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
==============================================
方法二、
rewriteengine on
rewritecond % {HTTP_HOST} [ ^ .] + \.域名\.com$
rewriterule ^ (. + ) % {HTTP_HOST}$ 1 [C]
rewriterule ([ ^ .] + )\.域名\.com(. * ) / $ 1 $ 2
其他配置文件
接着在DNS中开设一个泛解析到对应的IP地址。
就可以实现下面的方案。
域名:domain.com
绝对路径: / home / domain.com /
www.domain.com 自动解析到 / home / domain.com / www /
abc.domain.com 自动解析到 / home / domain.com / abc /
等等子域名都可以自动解析到 / home / domains.com / 对应子域名名称的文件夹
直接建立子域名名称的文件夹即可使用。不需重启apache。
RewriteEngine on
RewriteMap lowercase int :tolower
RewriteMap vhost txt: / usr / local / etc / apache / vhost.map
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / $ 1
其中的 / usr / local / etc / apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
内容为:
www.domain.com / usr / local / www / data - dist / domain
bbs.domain.com / usr / local / www / data - dist / bbs
anyname.domain.com / usr / local / www / data - dist / anyname
以上部分都是:” 域名 + 空格 + 绝对路径” 的形式。
最后,在你的网站根目录 / usr / local / www / data - dist 下,创建对应目录:
domain , bbs , anyname 等等,理论上可以无限。
这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 / usr / local / www / data - dist / domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 / usr / local / www / data - dist / bbs 目录下的文件。而且,你可以
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules / mod_rewrite.so前面的#号。
第二步:打配置文件尾部加上
RewriteEngine on
RewriteMap lowercase int :tolower
#定义映像文件
RewriteMap vhost txt: / apache / vhost / vhost.map
#处理变名
RewriteCond % {REQUEST_URI} !^/ icons /
RewriteCond % {REQUEST_URI} !^/ cgi - bin /
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
这里做基于文件的重新映射
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / $ 1
RewriteCond % {REQUEST_URI} ^/ cgi - bin /
RewriteCond ${lowercase: % {SERVER_NAME}} ^ (. + )$
RewriteCond ${vhost: % 1 } ^ ( / . * )$
RewriteRule ^/ (. * )$ % 1 / cgi - bin / $ 1
注意:vhost.map文件是域名和空间映像的文件,格式如下:
www.abc.com / vhostusr / www.abc.com
www.xyz.com / vhostuser / www.xyz.com
www.cccbbbb.net / vhostuser / www.ccbbbb.net
www.cncms.com.cn / vhostuser / www.cncms.com.cn
.
.
.
.
(你不会连 / vhostuser / www.abc.com目录也没建吧,会报错的哟)
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
==============================================
方法二、
rewriteengine on
rewritecond % {HTTP_HOST} [ ^ .] + \.域名\.com$
rewriterule ^ (. + ) % {HTTP_HOST}$ 1 [C]
rewriterule ([ ^ .] + )\.域名\.com(. * ) / $ 1 $ 2
其他配置文件
接着在DNS中开设一个泛解析到对应的IP地址。
就可以实现下面的方案。
域名:domain.com
绝对路径: / home / domain.com /
www.domain.com 自动解析到 / home / domain.com / www /
abc.domain.com 自动解析到 / home / domain.com / abc /
等等子域名都可以自动解析到 / home / domains.com / 对应子域名名称的文件夹
直接建立子域名名称的文件夹即可使用。不需重启apache。