由于网站开发常常碰到大量的二级域名测试,每次都去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