handle_path
与 handle
指令 类似,但会自动用 uri strip_prefix
剥离匹配到的路径前缀。
处理匹配某个路径的请求(同时从请求 URI 中剥离该路径)是非常常见的场景,因此有了这个专用指令以便简化配置。
语法
handle_path <path_matcher> {
<directives...>
}
- <directives...> 是 HTTP 处理器指令或指令块的列表,每行一个,就像在
handle_path
块外部使用一样。
只接受且必须有一个 路径匹配器;handle_path
不能使用命名匹配器。
示例
如下配置:
handle_path /prefix/* {
...
}
👆 实际等价于 👇,但 handle_path
写法更简洁:
handle /prefix/* {
uri strip_prefix /prefix
...
}
一个完整的 Caddyfile 示例,其中 handle_path
和 handle
互斥;但请注意子文件夹问题
example.com {
# 提供 API,剥离 /api 前缀
handle_path /api/* {
reverse_proxy localhost:9000
}
# 提供静态站点
handle {
root * /srv
file_server
}
}