try_files
该 `try_files` 指令尝试从指定路径提供文件,如果未找到文件则回退到指定的 URI。 — NGINX HTTP Core
try_files
serverlocation
语法try_files file1 [file2 ...] fallback_uri;
默认值none
上下文server, location
模块NGINX HTTP Core
参数2+
说明
`try_files` 指令在 NGINX 中用于指定一个文件路径列表,NGINX 会按顺序检查这些路径是否存在以响应请求。它可以接受多个参数,这些参数表示 NGINX 将按顺序尝试提供的文件路径或 URI。如果 NGINX 在某个指定路径上找到存在的文件,就会提供该文件。如果所有指定的文件都不存在,NGINX 可以回退到提供预定义的 URI,这对将请求路由到不同的处理器很有用。 语法至少需要两个参数:要检查的路径列表和至少一个回退 URI。该指令会按顺序检查每个路径,直到找到存在的文件。如果所有指定的文件都未找到,则使用最后一个参数(必须是 URI)。这允许通过回退到错误页面或重定向到不存在的路由来优雅地处理缺失的文件,例如用于 SPA 框架时。 `try_files` 指令在常见进行 URL 重写的位置表现尤为出色,例如 single-page applications 或动态管理的文件。通过利用传递给 `try_files` 的文件顺序,开发者可以根据磁盘上特定资源或指定 URI 的可用性创建灵活的响应。
配置示例
location / {
try_files $uri $uri/ /index.php;
}⚠
确保定义了回退 URI;如果未定义,当未找到任何文件时可能会导致 404 错误。
⚠
如果使用正则表达式,请注意匹配指令的顺序和组合。
⚠
请注意,`try_files` 一旦找到存在的文件就会停止检查,如果路径排序不正确,可能会导致意外结果。