必须配置 server.allowedHosts 才能让 Vite 接受 dev.example.com 等自定义域名请求,因其默认仅允许 localhost 和 127.0.0.1;需配合 host: true 或 '0.0.0.0' 及 hosts 文件映射方可生效。

要让 Vite 开发服务器接受特定域名的请求(比如 dev.example.com),关键不是配“请求头白名单”,而是配置 server.allowedHosts —— 这是 Vite 用来校验 HTTP 请求中 Host 头的白名单机制。
为什么需要配置 allowedHosts
Vite 默认只允许 localhost 和 127.0.0.1 访问。当你用自定义域名(如 dev.myapp.local)访问开发服务时,Vite 会检查请求里的 Host 头是否在白名单内。不匹配就报 invalid host header,哪怕你已设 server.host = true。
配置 allowedHosts 的三种写法
在 vite.config.js 的 server 选项中添加:
-
精确匹配:允许单一域名
allowedHosts: ['dev.myapp.local'] -
子域名通配:允许所有
.myapp.local下的域名(注意开头的点)allowedHosts: ['.myapp.local'] -
全局放行:允许任意 Host(仅限开发环境,有安全风险)
allowedHosts: ['*']
配合 host 设置一起用
仅配 allowedHosts 不够,你还得让 Vite 监听外部请求:
立即学习“Java免费学习笔记(深入)”;
- 设
host: true或host: '0.0.0.0',否则请求根本进不来 - 确保本地
hosts文件已映射该域名,例如:127.0.0.1 dev.myapp.local - 重启开发服务,配置才生效
常见组合示例
完整配置片段:
export default defineConfig({
server: {
host: true,
port: 3000,
allowedHosts: [
'dev.myapp.local',
'.staging.example.com',
'192.168.1.100'
]
}
})


















