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
}