v2中文文档
项目

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

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

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