由于网站开发常常碰到大量的二级域名测试,每次都去HOST文件里改来改去,之后再去APACHE的httpd-vhosts.conf里改来改去..经常长时间的煎熬,终于忍不了了..于是便有了下文:
一. 搭建个人DNS(Acrylic 官方下载)
1.下载安装好后,打开C:\Program Files\Acrylic DNS Proxy\AcrylicConfiguration.ini 更改
;主要DNS PrimaryServerAddress=221.228.255.1 ;次要DNS SecondaryServerAddress=8.8.8.8 ;次次要 TertiaryServerAddress=218.2.135.12.C:\Program Files\Acrylic DNS Proxy\AcrylicHosts.txt 更改(支持泛解析)
127.0.0.1 *.sf.com sf.com
3.更改本地DNS为127.0.0.1
二. 在http-vhost.conf的虚拟主机下加
<VirtualHost *>
<Directory "E:\WEB\wc1217">
Options -Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin admin@gt.cn
DocumentRoot "E:\WEB\wc1217"
ServerName sf.com
ServerAlias *.sf.com
ErrorLog logs/sf.cn-error_log
</VirtualHost>
三. 编写根目录.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
#判断HTTP_HOST
RewriteCond %{HTTP_HOST} ^([a-z0-9A-Z\-_\.]+).sf.com$
#%1为引用第一个Cond的()值
#判断是否在子目录下
RewriteCond %{REQUEST_URI} !^/%1/
#文件不存在
RewriteCond %{REQUEST_FILENAME} !-f
#目录不存在
RewriteCond %{REQUEST_FILENAME} !-d
#全部内容转向/%1/$1后中止
RewriteRule ^(.*)$ /%1/$1 [L]
#判断HTTP_HOST
RewriteCond %{HTTP_HOST} ^([a-z0-9A-Z\-_\.]+).sf.com$
#如果是/?(根目录)就跳转到%1(子域名)下.
RewriteRule ^/?$ %1/ [L]
</IfModule>
大功造成..记得每次改完AcrylicHosts.txt之后要重启一下Acrylic服务.可用以下命令
net stop acryliccontroller
net start acryliccontroller