XAMPP本地配置二级域名实现多级域名访问
XAMPP配置二级域名访问:三步缺一不可,否则必遇404

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
结论很明确:XAMPP完全可以配置二级域名,但整个过程就像一套精密的组合锁,必须三步全对——修改httpd.conf启用虚拟主机、在httpd-vhosts.conf中定义域名与路径并配置目录权限、最后还得修改系统hosts文件完成本地解析。这三步,漏掉任何一步,结果都一样:浏览器要么返回冷冰冰的404,要么直接把你打回localhost的默认页面。
第一步:先打开虚拟主机的“总开关”
很多朋友第一步就卡住了:明明按照教程修改了httpd-vhosts.conf,为什么访问自定义域名毫无反应?问题根源往往在于,Apache压根就没读取这个配置文件。你得先打开那个“总开关”。
找到XAMPP安装目录\apache\conf\httpd.conf,用文本编辑器打开,搜索下面这行代码:
Include conf/extra/httpd-vhosts.conf
关键来了:确保这行前面没有注释符号#。如果有,直接删掉。保存后,务必重启Apache服务。这一步不是可选项,而是激活虚拟主机功能的必备操作。
如果这步没做对,通常会看到两种典型错误:要么所有域名(包括你新设的)都指向配置文件里第一个VirtualHost所定义的目录;要么你访问test.local时,显示的依然是XAMPP那个经典的默认首页。
第二步:配置虚拟主机,目录权限是重中之重
在httpd-vhosts.conf里写配置,只指定DocumentRoot(网站根目录)和ServerName(服务器名)是远远不够的。对于Apache 2.4及以上版本,默认的安全策略是拒绝所有目录访问,你必须显式地“放行”。一个完整可用的配置示例应该是这样的:
DocumentRoot "D:/xampp/htdocs/myapp" ServerName api.dev.local Options Indexes FollowSymLinks AllowOverride All Require all granted
这里有几个细节必须敲黑板:
- 路径要绝对,结尾要干净:
DocumentRoot必须使用绝对路径,并且路径末尾不要加斜杠。 - 目录配置要对齐:
标签里的路径,必须和上面的DocumentRoot保持完全一致,包括大小写和斜杠方向(Windows下通常用正斜杠/或反斜杠\均可,但建议统一)。 - 语法别搞混:千万别用老旧的
Allow from all。那是Apache 2.2时代的语法,现在主流的XAMPP内置的是Apache 2.4,用了会直接报错Invalid command 'Allow'。正确的写法是Require all granted。 - 给.htaccess留条路:如果项目用到PHP框架(如Lara vel、ThinkPHP)或需要URL重写,务必加上
AllowOverride All,这样项目目录下的.htaccess文件才能生效。
第三步:搞定系统hosts文件,管理员权限是关键
路径大家都知道:C:\Windows\System32\drivers\etc\hosts。但坑也在这里:直接双击用记事本修改,常常因为权限不足而导致保存失败,表面上你改了,实际上系统根本没写入。
正确的操作姿势是:
- 在开始菜单找到“记事本”或“VS Code”,右键选择“以管理员身份运行”。
- 然后在这个拥有高级权限的编辑器里,通过“文件”->“打开”去找到并编辑
hosts文件。 - 在文件末尾添加你的本地域名映射,注意用空格分隔(建议用空格而非Tab键):
127.0.0.1 frontend.dev.local 127.0.0.1 api.dev.local
怎么验证是否生效?很简单:
- 打开命令提示符,输入
ping frontend.dev.local。如果看到Reply from 127.0.0.1的回复,恭喜你,解析成功了。 - 如果提示“找不到主机”,那基本可以断定是
hosts文件没修改成功,九成是因为没用管理员权限保存。 - 一个小提示:修改
hosts后不需要重启Apache,但浏览器可能会缓存旧的DNS记录。如果遇到问题,可以在命令行执行ipconfig /flushdns来清空本地DNS缓存。
避开最后一个坑:浏览器与域名的兼容性
这是近年来新出现的“坑”。从2022年左右开始,Chrome和Edge等现代浏览器出于安全考虑,默认将.dev、.app等顶级域视为公共后缀,并强制对它们使用HTTPS。这会导致你的本地HTTP站点无法访问。
所以,给你的本地开发域名提个醒:
- 避免使用
.dev或.app:建议改用.test、.local,或者最标准的.localhost。 - 首选
.localhost:这个域名是IETF标准明确保留给本地环回测试使用的,所有主流浏览器都支持对其直接使用HTTP协议,无需任何证书。 - 注意地址栏变化:如果你用了
.dev域名却打不开,看一眼地址栏,如果它自动变成了https://开头,那就是浏览器的HSTS策略在“作祟”。 - 关于别名:如果想为一个站点配置多个域名,可以使用
ServerAlias指令,例如:ServerAlias www.api.dev.local api.dev.local。但请注意,主域名仍然以ServerName为准。
说到底,配置二级域名本身语法并不复杂。真正卡住人的,往往就是那些看似简单却极易忽略的步骤:hosts文件没保存成功、httpd.conf里的那行注释没取消、或者Directory权限没给够。把这三点逐一检查到位,95%的“本地二级域名之谜”也就迎刃而解了。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Go语言嵌套结构体与数组建模指南实现清晰可维护JSON序列化
Go语言中嵌套结构体与数组的高级建模实践:清晰、可维护、符合JSON序列化规范 本文详解如何为复杂JSON结构(如含多层嵌套对象与数组)设计Go结构体,推荐显式命名类型替代匿名结构,结合导出字段、精准struct tag及构造函数,提升可读性、可测试性与跨包可用性。 在Go语言中处理复杂的JSON数
Python异步编程中全局变量安全吗ContextVars上下文变量详解
异步函数中直接读写全局变量会导致协程间上下文污染,引发用户ID错乱、权限校验错误等问题;threading local在asyncio中失效,因协程共享同一线程;应使用ContextVar配合set get reset确保上下文隔离。 异步函数里直接读写全局变量会出什么问题 不安全,而且非常容易踩坑
Python集成测试指南使用pytest搭建服务器端到端验证方法
pytest集成测试的核心挑战在于:动态分配端口以避免冲突,确保服务器完全就绪后再发起请求,实现数据库的彻底隔离,为JSON请求设置正确的请求头,并在测试结束后清理资源,防止持续集成(CI)环境失败。 pytest 启动测试服务器时端口被占怎么办 在本地运行集成测试时,你是否也经常被 Address
Python数据加权计算指南np.average函数实操详解
np a verage()加权计算:避开那些让你结果变nan的“坑” 在数据处理中,加权平均是再常见不过的操作,但np a verage()这个看似简单的函数,却暗藏玄机。一个不小心,算出来的结果全是nan,或者直接抛出AxisError,让人摸不着头脑。问题往往就出在权重参数weights的设置上
Go语言go run命令无响应问题排查与解决方案详解
Go 语言 go run 命令无输出且不退出的排查与解决 Go 程序使用 go run main go 时无控制台输出、进程不退出,常见于 Windows 平台下安全软件(如 Comodo)对 go exe 的自动隔离行为,而非代码或环境配置错误。 遇到 go run main go 命令执行后,终
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

