ドキュメント
a プロジェクト

handle_path🔗

handle ディレクティブ と同様に動作しますが、暗黙的に uri strip_prefix を使って一致したパスのプレフィックスが削除されます。

特定のパスのリクエストを処理する (リクエスト URI からそのパスを削除する) ことは一般的なユースケースですので、便宜上それ専用のディレクティブがあります。

構文🔗

handle_path <path_matcher> {
	<directives...>
}
  • <directives...> は HTTP ハンドラディレクティブまたはディレクティブブロックのリストで、1 行に 1 つずつ handle_path ブロックの外部で使用されるのと同様に記載します。

1 つの パスマッチャ のみ使用できます。これは必須です。handle_path では名前つきマッチャは使用できません。

🔗

次の設定

handle_path /prefix/* {
	...
}

👆 は、基本的に次の 👇 の設定と同じですが、handle_path 形式 👆 の方がやや簡潔です。

handle /prefix/* {
	uri strip_prefix /prefix
	...
}

Caddyfile の完全な例で、handle_pathhandle は互いに排他的ですが、サブフォルダーの問題 に注意してください。

example.com {
	# Serve your API, stripping the /api prefix
	handle_path /api/* {
		reverse_proxy localhost:9000
	}

	# Serve your static site
	handle {
		root * /srv
		file_server
	}
}