Caddy 2 路由添加URI前缀的配置需求(与uri strip_prefix反向)
Caddy 2 路由添加URI前缀的配置需求(与uri strip_prefix反向)
嗨,我来帮你搞定这个需求!你要的正好是和uri strip_prefix完全反向的操作——给所有请求的URL统一加上/foo前缀对吧?
在Caddy 2里,用uri指令的add_prefix动作就能轻松实现,直接给你实用的配置示例:
基础配置(无条件添加前缀)
your-domain.com { # 给所有请求的URI添加/foo前缀 uri add_prefix /foo # 这里补上你的实际业务配置,比如反向代理到后端服务 reverse_proxy http://your-backend-server # 或者是静态文件服务的话就写 file_server }
这个配置的效果完全符合你的预期:
- 用户访问
your-domain.com→ 实际处理的URL是your-domain.com/foo - 用户访问
your-domain.com/a→ 实际处理的URL是your-domain.com/foo/a
进阶配置(避免重复添加前缀)
如果担心用户直接访问带/foo前缀的URL时会被重复添加(比如your-domain.com/foo/b变成your-domain.com/foo/foo/b),可以加个条件判断,只给没有/foo前缀的请求添加:
your-domain.com { # 定义一个匹配规则:URI不以/foo开头的请求 @noFooPrefix { not path /foo* } # 只对符合规则的请求添加前缀 uri @noFooPrefix add_prefix /foo # 后续业务配置... reverse_proxy http://your-backend-server }
这样就完美覆盖所有场景啦,你可以根据自己的实际需求选基础版或者进阶版配置~
备注:内容来源于stack exchange,提问作者tris
相关产品推荐
相关产品推荐

