官方文档 http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files

try_files 用于指定文件的查找规则,可以配置多个规则,会按顺序执行查找规则,若找到文件则中断查找并返回文件,若找不到则返回404响应。

配置语法

Syntax:  try_files file ... uri;try_files file ... =code;
Default: —
Context: server, location

示例

location / {root html;index index.html;try_files $uri $uri/ /index.html;
}
  • 解释下配置:
    root指令 设置了 静态根目录html
    index指令 设置了 目录的默认文件index.html
    try_files指令 设置了 文件查找规则$uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 $uri/ 目录中查找,最后查找 /index.html

举个例子
针对上面的配置,当请求 http://localhost:8080/abc 时,则 $uri/abc,此时,try_files 的规则可以具体为 /abc /abc/ /index.html/ 表示根目录 html(由 root指令 指定)。
其具体的查找逻辑如下:

  1. 检查 html 目录中是否存在 abc 文件(对应第1个规则)

    • 如果存在,则返回文件
    • 如果不存在,则继续下一步
  2. 检查 html 目录中是否存在 abc/ 目录(对应第2个规则)
    • 如果存在,则检查 abc/ 目录中是否存在 index.html 文件(由 index指令 指定)

      • 如果存在,则返回文件
      • 如果不存在,则默认返回403,因为目录不可访问;
    • 如果不存在则继续下一步
  3. 检查 html 目录中是否存在 index.html 文件(对应第3个规则)
    • 如果存在,则返回文件
    • 如果不存在,则返回404

小结: 可以看到,try_files指令 的查找逻辑和 root指令index指令 有很大的关系。

高级用法:

  • 先在本地尝试查找文件,找不到则重定向到其他地址
location / {try_files $uri $uri.html $uri/ @mongrel;
}
location @mongrel {proxy_pass http://mongrel;
}

Nginx try_files 指令相关推荐

  1. nginx文件服务器判断文件是否存在,nginx try_files指令判断文件是否存在实例

    现在有这样一个需求,网站根目录下有静态文件,static目录下也有静态文件,static目录下的静态文件是程序批量生成的,我想让nginx在地址不变的前提下优先使用static目录里面的文件,如果不存 ...

  2. nginx中的try_files指令解释

    try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite. try_files 语法: try_files file ... u ...

  3. [Linux] nginx的try_files指令实现隐藏index.php的重写

    1.nginx的try_files指令 ,核心功能是替代rewrite,并且比rewrite更强大的是可以按顺序查找文件是否存在,如果文件都找不到才会执行最后的重定向 解决的问题是,如果一个网站的部署 ...

  4. 硬核!全网最全Nginx配置指令,建议收藏~

    硬核!全网最全Nginx配置指令,建议收藏~ 1.前言 1.1.Nginx配置文件各个主配置块说明 1.2.Nginx配置符号参考 1.3.本文出现的一些词汇介绍 2.正文 2.1.位于全局块的配置指 ...

  5. Nginx SSI指令配置详解

    这篇文章主要介绍了Nginx SSI指令配置详解,本文讲解了什么是SSI.为什么要用SSI.nginx配置SSI.页面上配置.配置示例等内容,需要的朋友可以参考下 什么是SSI Server Side ...

  6. windows下nginx基本指令

    nginx基本指令 1.启动nginx 2.停止nginx 3.重新载入nginx 4.重新打开日志文件 5.查看nginx版本 6.nginx启动时80端口被占用解决方案 7.查看nginx是否启动 ...

  7. Nginx try_files

    Nginx try_files 语法:try_files file - uri; 按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理; 如果给出的file都没有匹配到,则重新请求最 ...

  8. location ~ .php$,nginx location指令详解,

    nginx location指令详解, location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? =开头表示精确匹配 ^~ 开头,注意这不是一个正则 ...

  9. nginx resolver 指令的使用

    官方解释下就是:反向代理的场景,upstream后端用域名时,配置resolver以便于nginx能够解析该域名 Configures name servers used to resolve nam ...

最新文章

  1. 简易在线实验室管理系统
  2. 教你打造优秀IT博文
  3. MeayunDB学习笔记(一) MeayunDB介绍及安装
  4. java版spring cloud+spring boot+redis多租户社交电子商务平台 (十三)springboot集成spring cache...
  5. Istio Pilot架构解析
  6. 银行营业网点管理系统——implt包(CityAreaDaoImpl )
  7. 图解|查找数组中最大值的5种方法!
  8. C语言fscanf和fprintf函数的用法详解
  9. think route.php,ThinkPHP5—路由(route)详解
  10. 【白皮书分享】2020中国硬科技创新白皮书.pdf(附下载链接)
  11. Cannot forward ... response ... committed
  12. 数据库学习笔记5-隔离级别 Repeatable Read
  13. ipython 安装_IPYTHON安装.DOC
  14. vs code为什么不出现小黑框_为什么越来越多商家开通微信小程序商城?
  15. ibm tivoli_Tivoli Access Manager信任关联拦截器(TAI ++)
  16. oracle 时间函数介绍
  17. [JsHtml]全面清除前端缓存
  18. html5设置页面标题,单选(4分) 下面选项中,可以将HTML5页面的标题设置为“我的第一个网页”的是()。...
  19. Ubuntu 复制文件到远端时错误,Permission denied 失败原因深度探索
  20. web课程设计网页规划与设计 基于HTML+CSS+JavaScript制作智能停车系统公司网站静态模板

热门文章

  1. Vue中svga特效展示
  2. socketpair
  3. python就业前景如何_Python就业前景怎么样?
  4. 决策树5:剪枝与sklearn中的决策树
  5. Redis 搭建分片集群
  6. 图片与文字垂直居中的方法
  7. C++:实现量化可转换债券测试实例
  8. SpringBoot字典翻译
  9. 《环球国家地理杂志》(下载地址暂时有效)
  10. 玩转Mysql系列 - 第22篇:mysql索引原理详解