如何使用Caddy重定向所有未定义的子域名
Caddy配置:未定义子域名统一重定向到指定站点
在Caddyfile中,你可以通过精确域名优先匹配+通配符兜底站点的方式实现需求,具体配置如下:
1. 保留原有站点配置
先保留你已定义的两个站点的原有配置:
a.example.com { # 此处填写a.example.com的原有配置 # 示例:reverse_proxy localhost:8080 } b.example.com { # 此处填写b.example.com的原有配置 # 示例:file_server browse }
2. 添加兜底重定向配置
新增一个通配符站点作为兜底,匹配所有未被精确定义的子域名,并将其重定向到a.example.com:
*.example.com { # 匹配器:排除已定义的a和b子域名 @notAllowed { not host a.example.com not host b.example.com } # 执行永久重定向(301),临时重定向可替换为temporary redir @notAllowed https://a.example.com permanent }
配置说明
- Caddy的匹配规则是精确域名优先,因此
a.example.com和b.example.com会优先使用各自的配置,不会触发兜底重定向。 *.example.com会匹配所有example.com的子域名,仅当访问未定义的子域名(如c.example.com、xyz.example.com)时,才会进入该兜底配置。@notAllowed匹配器是双重保险,避免因意外情况导致已定义的子域名被错误重定向。
内容的提问来源于stack exchange,提问作者scaramouche
相关产品推荐
相关产品推荐

