handle_path
与handle指令相同,但会隐式剥离匹配到的路径前缀。
处理匹配某个路径的请求(同时从请求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
}
}