Nginx location 配置中 try_files 指令的匹配机制和顺序是什么

冰川箭仙

冰川箭仙

2026-07-28

806人浏览

原创

try_files 的匹配机制是文件系统存在性检查加内部重定向,不改变 location 选择结果;按从左到右顺序检查每个参数对应的真实路径,首个存在即返回,最后一个参数为兜底动作(/开头触发内部重定向、@开头跳命名location、=404等直接返回状态码)。

nginx location 配置中 try_files 指令的匹配机制和顺序是什么

try_files 的匹配机制不是 location 匹配,而是文件系统存在性检查 + 内部重定向,它在 location 块内部执行,不改变 location 选择结果。

检查顺序严格从左到右

try_files 后面的参数(除最后一个外)按书写顺序依次检查:

  • 每个参数先拼接 root 或 alias 路径,生成真实文件系统路径
  • $uri 对应找文件,$uri/ 对应找目录(需目录内有 index 指令定义的默认文件才视为“存在”)
  • 遇到第一个存在的文件或可服务的目录,立即返回该资源,不再往后检查
  • 整个过程不触发外部跳转,客户端无感知

最后一个参数是兜底动作,不是文件路径

它不参与磁盘检查,只起控制作用:

Nginx
Nginx

在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。

下载
  • 以 / 开头(如 /index.html):发起内部重定向,Nginx 重新用新 URI 匹配 location
  • @ 开头(如 @php):直接跳入命名 location,绕过 location 匹配流程
  • =404 或 =403:直接返回对应状态码,不进任何 location
  • 不能写成 http:// 或 proxy_pass 地址——那是 proxy_pass 的职责

它不替代 location 匹配,也不影响匹配优先级

try_files 在 location 已被选定后才执行:

  • 比如请求 /abc.php,先由 Nginx 按照 location ~ \.php$ 规则匹配到 PHP 处理块,再执行其中的 try_files
  • 若该块没配 try_files,而只在 location / 里配了,那对 .php 请求完全无效——根本进不到那个块
  • 常见错误:在通用 location / 里配了 try_files $uri $uri/ /index.php,却忘了在 PHP location 块里也加 try_files $uri =404,导致不存在的 .php 文件直接报错而非回退

常见组合与行为示例

这些写法背后逻辑一致:

  • SPA 配置:try_files $uri $uri/ /index.html → 找不到静态资源时,内部重定向到 /index.html,由前端路由接管
  • 动静分离兜底:try_files $uri $uri/ @backend → 未命中静态资源,跳命名 location,那里写 proxy_pass
  • 多级缓存查找:try_files /cache$uri /origin$uri =404 → 先查缓存路径,再查原始路径,都失败就 404
  • 带参数保留的重定向:try_files $uri $uri/ /index.php?$args → 注意 $args 显式拼接,否则内部重定向会丢失查询参数

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

335

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

616

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1192

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

428

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1009

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1800

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习