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_path
と handle
は互いに排他的ですが、サブフォルダーの問題 に注意してください。
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
}
}