欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > nginx中的try_files指令

nginx中的try_files指令

2025/4/7 16:34:32 来源:https://blog.csdn.net/ZhanBiaoChina/article/details/147030941  浏览:    关键词:nginx中的try_files指令

try_files 是 Nginx 中一个非常有用的指令,用于按顺序检查文件是否存在,并返回第一个找到的文件。如果所有指定的文件都不存在,则执行回退逻辑,如重定向到一个指定的 URI 或返回一个错误代码。
作用
文件查找:按顺序检查多个文件路径,直到找到存在的文件。
错误处理:如果所有路径都不存在,可以返回一个指定的错误页面或重定向到其他 URI。
灵活配置:适用于单页应用(SPA)等场景,确保所有请求都能正确处理。
语法

try_files file1 [file2 ...] fallback;

file1, file2, …:按顺序检查的文件路径。
fallback:如果所有文件都不存在,则执行的回退逻辑,可以是一个 URI 或 HTTP 状态码。

示例
1.基本示例

location / {try_files $uri $uri/ =404;
}

尝试访问请求的 URI 对应的文件($uri)。
如果找不到,尝试访问请求的 URI 对应的目录($uri/)。
如果都找不到,返回 404 错误。

2.单页应用(SPA)

location / {try_files $uri $uri/ /index.html;
}

尝试访问请求的 URI 对应的文件($uri)。
如果找不到,尝试访问请求的 URI 对应的目录($uri/)。
如果都找不到,重定向到 index.html,让前端路由处理请求。

3.带有参数的 URL

location / {try_files $uri $uri/ /index.php?$query_string;
}

尝试访问请求的 URI 对应的文件($uri)。
如果找不到,尝试访问请求的 URI 对应的目录($uri/)。
如果都找不到,重定向到 index.php 并附加查询字符串。
4.指定回退文件

location /pngs/ {root /data/user/;index index.html index.htm;try_files $uri $uri/ /pngs/file.png;
}

尝试访问请求的 URI 对应的文件($uri)。
如果找不到,尝试访问请求的 URI 对应的目录($uri/)。
如果都找不到,重定向到 /pngs/file.png。
查找逻辑
$uri:检查请求的 URI 对应的文件。
$uri/:检查请求的 URI 对应的目录。
回退逻辑:如果所有路径都不存在,执行回退逻辑(如返回 404 或重定向)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词