root
设置站点的根路径,供各种访问文件系统的匹配器和指令使用。如果未设置,默认站点根目录为当前工作目录。
具体而言,此指令设置 {http.vars.root}
占位符。它与同一块中的其他 root
指令互斥,因此可以安全地定义多个相交的根目录与匹配器:它们不会级联并互相覆盖。
此指令不会自动启用静态文件服务,因此通常与 file_server
指令 或 php_fastcgi
指令 结合使用。
语法
root [<matcher>] <path>
- <path> 是用于站点根目录的路径。
在 v2.8.0 之前,如果 <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
}