root
ファイルシステムにアクセスするさまざまなマッチャーおよびディレクティブで使用されるサイトのルートパスを設定します。未設定の場合、デフォルトのサイトルートは現在の作業ディレクトリです。
具体的には、このディレクティブは {http.vars.root}
プレースホルダーを設定します。同じブロック内の他の root
ディレクティブとは相互に排他的であるため、交差するマッチャーを使用して複数のルートを定義するのは安全です: カスケードされずに上書きされることはありません。
このディレクティブは静的ファイルの提供を自動的に有効にしないため、通常は file_server
ディレクティブ または php_fastcgi
ディレクティブ と組み合わせて使用されます。
構文
root [<matcher>] <path>
- <path> はサイトのルートに使用されるパスです。
<path>
引数が /
で始まる場合、パーサーによって マッチャートークン と混同される可能性があることに注意してください。あいまいさを解消するには、ワイルドカードマッチャートークン (*
) を指定します。以下の例を参照してください。
例
サイトのルートを /home/bob/public_html
に設定する (Caddy がユーザー bob
として実行されていることを前提としています)
root * /home/bob/public_html
すべてのリクエストに対してサイトのルートを public_html
(現在の作業ディレクトリに対する相対パス) に設定します
(当社のサイトルートが相対パスなので、ここではマッチャートークンは必要ありません。つまり、スラッシュで始まらず、したがってあいまいでありません。)
root public_html
リクエストでのサイトのルートのみ /foo/*
に変更します
root /foo/* /home/user/public_html/foo
root
ディレクティブは、通常、file_server
と組み合わせて静的ファイルを配信するためか、php_fastcgi
と組み合わせて PHP サイトを配信するために使用されます
example.com {
root * /srv
file_server
}