文档
一个 项目

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
}