在本地开发时, 不可能只有一个网站, 一般都需要多站点, 我们来搞定在windows10中通过XAMPP来配置多站点的问题, 其中有很多坑.
配置本地DNS解析
既然需要配置多站点, 那么需要多个假域名, 为了正确对这些假域名做DNS解析, 就需要对本地管理DNS的文件做映射配置.
- 打开
C:\Windows\System32\drivers\etc
目录, 找到hosts
文件并打开.
- 配置自定义的假域名(这里配置了q1.abc和q5.abc), 并解析到
127.0.0.1
- 以ANSI编码保存hosts文件, 这一步骤非常关键, windows只能读取ANSI编码的hosts
- 使用
ipconfig /flushdns
命令刷新本地DNS缓存, 并重新打开浏览器(浏览器会缓存一份DNS到内存, 必须清除)
- 使用
ipconfig /displaydns
命令列出DNS, 看是否生效
除了使用ipconfig /displaydns
命令外还可以用ping <域名>
配置xampp的httpd.conf文件
- 打开xampp的
httpd.conf
的文件
- 检查是否引入了
Include conf/extra/httpd-vhosts.conf
, 并且没有被注释掉
配置xampp的httpd-vhosts.conf文件
- 打开xampp的
httpd-vhosts.conf
的文件
用以下格式进行配置虚拟主机配置
<VirtualHost *:80> DocumentRoot "E:/test-site/q1" #这个是你网站的文件夹 ServerName q1.abc #这个是你配置的域名 # 以下是对你网站文件夹做权限配置, 以防权限不够, 以下配置就是允许所有人做任何操作 <Directory E:/test-site/q1> AllowOverride All Require all granted
最后的操作
关闭所有代理, 这一点非常重要, 本人研究了一晚上, 最后发现是代理的锅
重启xampp
总结
只要按照上面的步骤操作, 不出意外一定能配置好, 其中有两点非常关键, 一个是hosts文件必须以ANSI格式保存, 另一个是关闭所有代理.
参考资料
How to Setup Multiple Virtual Hosts on XAMPP
windows修改hosts文件不生效(非DNS缓存问题)(www.hedaoshe.com)