文档
一个 项目

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_pathhandle 互斥;但请注意子文件夹问题

example.com {
	# 提供 API,剥离 /api 前缀
	handle_path /api/* {
		reverse_proxy localhost:9000
	}

	# 提供静态站点
	handle {
		root * /srv
		file_server
	}
}