ドキュメント
a project

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
}