要让php框架项目通过干净域名访问,必须配置虚拟主机指向public目录:修改hosts绑定域名,启用httpd-vhosts模块,正确设置documentroot和directory路径,验证语法后重启apache。

要让PHP框架项目像线上环境一样通过干净域名访问,比如myapp.test而不是localhost/myapp/public,必须绕过htdocs根目录直连的粗放方式,把请求精准路由到框架的public入口目录——这一步不做,路由失效、静态资源404、.htaccess被忽略全是必然结果。
修改系统hosts文件绑定本地域名
打开C:WindowsSystem32driversetchosts(Windows)或/etc/hosts(macOS/Linux),用管理员权限的文本编辑器编辑。
在文件末尾新增一行:【127.0.0.1 myapp.test】,注意前后无空格、无分号、不加http前缀。
保存后无需重启,但浏览器DNS缓存可能残留旧记录,执行ipconfig /flushdns(Windows)或sudo dscacheutil -flushcache(macOS)立即生效。
启用Apache虚拟主机配置模块
找到Apache主配置文件httpd.conf,路径通常为C:Apache24confhttpd.conf(Windows)或/etc/apache2/apache2.conf(Ubuntu)。
搜索Include conf/extra/httpd-vhosts.conf,删掉该行开头的#注释符;若整行被注释且前面有空格,需一并删除空格。
这步漏做会导致后续所有虚拟主机配置完全不加载,Apache只会走默认根目录,myapp.test将直接返回404或跳转到localhost首页。
配置Apache虚拟主机指向public目录
打开conf/extra/httpd-vhosts.conf文件,在末尾添加以下配置块:
<virtualhost><br> ServerName myapp.test<br> DocumentRoot "D:/projects/myapp/public"<br> <directory><br> Options Indexes FollowSymLinks<br> AllowOverride All<br> Require all granted<br> </directory><br></virtualhost>
其中DocumentRoot和<directory></directory>路径必须完全一致,且必须精确到public子目录——指向项目根目录会导致index.php无法被Web服务器识别为入口,所有路由全部崩坏。
Windows用户注意路径分隔符用正斜杠/或双反斜杠\,单反斜杠会引发语法错误;Linux/macOS用户路径区分大小写,Public和public是两个不同目录。
验证配置并重启Apache服务
第一步:在命令行中执行httpd -t(Windows)或apache2ctl configtest(Linux/macOS)。
第二步:若返回Syntax OK,说明配置无语法错误;若报错,根据提示定位行号修正,常见错误是引号不匹配、标签未闭合、路径含中文或空格未加引号。
第三步:执行httpd -k restart(Windows)或sudo systemctl restart apache2(Ubuntu)强制重载配置。
第四步:打开浏览器访问http://myapp.test,页面正常渲染即表示虚拟主机已就绪,可开始调试框架路由与静态资源加载。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











