在XAMPP中配置域名,核心就是改两个文件:系统hosts文件和Apache的httpd-vhosts.conf虚拟主机配置文件。 把自定义域名指向本地项目目录,然后重启Apache就能生效,下面我按步骤拆解,顺带把常见的坑也一并说清楚。
为什么需要给XAMPP配置域名
本地开发时,默认通过localhost或127.0.0.1访问项目,但真实项目往往需要模拟线上环境,尤其是前端联调、接口跨域、多站点切换场景,直接用IP访问会带来不少麻烦,行业共识认为,在本地配置一个形如dev.myproject.com的域名,更接近真实部署环境,能提前暴露许多配置问题。
你可能会遇到这种情况:一个项目里写死了绝对路径,或者接口地址用了正式域名,本地不配置域名根本没法跑,配置域名后,访问方式变成http://dev.myproject.com,代码里那些路径可以原样保留,省去来回改的功夫,XAMPP的可视化管理面板默认只处理80端口,配置虚拟主机能让Apache更灵活地调度多个站点。
xampp 配置域名前的基础准备
动手前,确认三件事:XAMPP已安装并成功启动Apache,项目文件放在htdocs目录下,以及你知道自己的系统版本,Windows和macOS的hosts文件路径不同,但XAMPP内部文件结构一致。
先查看XAMPP的安装路径,比如Windows下是C:\xampp,macOS下是/Applications/XAMPP/xamppfiles,打开文件管理器,依次进入apache\conf\extra目录,确认httpd-vhosts.conf存在,这是Apache的虚拟主机配置文件,也就是配置域名的关键。
检查httpd.conf中是否已启用虚拟主机模块,按住Ctrl+F搜索“httpd-vhosts”,如果那一行前面有符号,把去掉,保存,这一步很多人会漏掉,结果改了配置却无效。
xampp 绑定域名的完整步骤
整个配置流程分为三步:改hosts、改vhosts、重启服务,每一步都不复杂,但顺序别颠倒。

第一步:修改hosts文件
Windows用户打开C:\Windows\System32\drivers\etc\hosts,macOS用户打开/etc/hosts,用记事本或代码编辑器打开这个文件,在末尾添加一行:
0.0.1 dev.myproject.com
这里dev.myproject.com可以换成任何你喜欢的自定义域名,但别用.com结尾的真实域名,以免和公网冲突,建议用.test或.local后缀,保存文件时注意编码,如果出现乱码,改用UTF-8格式重存。
第二步:配置httpd-vhosts.conf
打开apache\conf\extra\httpd-vhosts.conf,文件里原本有一堆示例代码,不用理会,直接拉到最后添加一个虚拟主机块:
<VirtualHost :80>
DocumentRoot "C:/xampp/htdocs/myproject"
ServerName dev.myproject.com
</VirtualHost>
DocumentRoot要写你的项目实际路径,ServerName就是刚才在hosts里填的域名,如果你有子域名需求,比如admin.dev.myproject.com,再复制一份这个块,对应修改ServerName和DocumentRoot就行。
第三步:启用虚拟主机并重启Apache
光改配置文件还不够,必须先确认httpd.conf里启用了虚拟主机模块,大多数版本的XAMPP默认已启用,但保险起见再检查一次,然后打开XAMPP控制面板,点击Apache那一行右侧的“Stop”,等状态变灰后,再点“Start”,重启后配置才生效。
打开浏览器,输入http://dev.myproject.com,如果显示你的项目页面,说明配置成功,如果显示目录列表或XAMPP默认首页,多半是DocumentRoot路径写错了。
xampp 配置域名的常见故障排查
配置过程中,有几个高频问题几乎每个人都会遇到,这里挑典型的三个说清楚。
xampp 访问域名出现404
页面弹出404 Not Found,首先查虚拟主机配置的DocumentRoot

路径是否存在,Windows下路径里的正斜杠和反斜杠容易混用,建议统一用正斜杠,另一点是Apache的运行用户可能没有目录读取权限,检查项目文件夹的权限设置,确保至少有只读权限。
域名指向了默认文档
输入域名后,跳转到htdocs下的index.php,而不是你的项目,这种情况通常是因为Apache加载了多个虚拟主机,第一个匹配的配置覆盖了你的设置,打开httpd-vhosts.conf,把自定义的虚拟主机块放在文件最前面,确保NameVirtualHost :80这一行存在,否则Apache不会按域名区分站点。
修改hosts后浏览器无反应
浏览器会缓存DNS结果,修改hosts后最好重启浏览器或开启无痕模式,Windows下可以执行ipconfig /flushdns命令刷新DNS缓存,以上方法都不行,检查hosts文件是否被安全软件拦截,有些防护软件会锁定hosts写入。
不同场景下的配置对比
如果你只装了一个XAMPP,当然可以直接用默认的htdocs目录,但实际开发中经常要同时维护多个项目,比如一个商城、一个博客,用同一个Apache提供服务,这时候配置多个虚拟主机,比你手动切换目录要高效得多。
| 场景 | 单站点配置 | 多站点配置 |
|---|---|---|
| hosts文件 | 添加一行 | 添加多行,每行一个域名和一个项目入口 |
| vhosts配置 | 一个VirtualHost块 | 每个域名对应一个VirtualHost块 |
| 网站根目录 | 指向公共htdocs | 每个块指向独立的项目目录 |
| 访问复杂度 | 直接访问自定义域名 | 通过不同域名区分项目,代码环境隔离清晰 |
相比之下,多站点的初始配置多花几分钟,但后续联调省心不少,你不需要再为每个项目改路径,也不必担心多个项目共用数据库配置冲突。
配置后的安全与性能建议

域名配置好只是第一步,本地环境跑了之后,还得考虑安全性和响应速度,XAMPP默认配置面向开发环境,生产环境部署时不能照搬。
给htdocs目录设置访问权限,别让所有人都能浏览你的项目结构,具体做法是在vhosts的配置里加上Require all denied,再放行index.php文件,如果项目涉及上传功能,关闭PHP的错误显示,把display_errors设为Off,避免敏感信息泄露。
性能方面,Apache开启KeepAlive能减少频繁握手,打开httpd.conf,搜索KeepAlive,把值为On,再调整MaxRequestsPerChild为5000以上,这些优化对本地开发影响不大,但为上线后的行为提前打好基础。
xampp 配置域名常见问题解答
xampp 配置域名后为什么一直打不开?
检查两个文件是否改动完整:hosts文件末尾是否换行且无多余空格,httpd-vhosts.conf中ServerName是否和hosts中的域名完全一致,然后在XAMPP控制面板重启Apache,如果Apache启动失败,查看logs\error.log里的提示,多半是配置语法错误,比如漏掉了</VirtualHost>。
xampp 如何配置多域名,把两个项目分别指向不同地址?
依次修改hosts和httpd-vhosts.conf,在hosts中添加两行,分别指向不同自定义域名;然后在httpd-vhosts.conf中写两个VirtualHost块,每个块设置不同的ServerName和DocumentRoot,重启后即可通过不同域名访问各自项目。
使用xampp配置的域名能在手机上访问吗?
可以,前提是你的手机和电脑处于同一局域网,在hosts文件中除了0.0.1,再加一条你电脑的局域网IP,比如168.1.100 dev.myproject.com,手机浏览器访问这个域名时,会解析到该IP,从而请求你电脑上的Apache服务,注意防火墙需要允许Apache通过专用网络。
