文档
一个 项目

root

设置网站的根路径,供各种匹配器和需要访问文件系统的指令使用。如果未设置,默认的网站根目录是当前工作目录。

具体来说,此指令设置 {http.vars.root} 占位符。它在同一块中与其他 root 指令是互斥的,所以定义多个相交匹配器的根目录是安全的:它们不会级联和相互覆盖。

此指令不会自动启用静态文件服务,所以它通常与 file_server 指令php_fastcgi 指令 一起使用。

语法

root [<匹配器>] <路径>
  • <路径> 是要用作网站根目录的路径。

在 v2.8.0 之前,如果 <路径> 参数以 / 开头,解析器可能会将其误认为是匹配器标记,因此需要指定通配符匹配器标记(*)。

示例

将网站根目录设置为 /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
}