Nginx try_files 指令
官方文档 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指令 指定)。
其具体的查找逻辑如下:
- 检查
html
目录中是否存在abc
文件(对应第1个规则)- 如果存在,则返回文件
- 如果不存在,则继续下一步
- 检查
html
目录中是否存在abc/
目录(对应第2个规则)- 如果存在,则再检查
abc/
目录中是否存在index.html
文件(由 index指令 指定)- 如果存在,则返回文件
- 如果不存在,则默认返回403,因为目录不可访问;
- 如果不存在则继续下一步
- 如果存在,则再检查
- 检查
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 指令相关推荐
- nginx文件服务器判断文件是否存在,nginx try_files指令判断文件是否存在实例
现在有这样一个需求,网站根目录下有静态文件,static目录下也有静态文件,static目录下的静态文件是程序批量生成的,我想让nginx在地址不变的前提下优先使用static目录里面的文件,如果不存 ...
- nginx中的try_files指令解释
try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite. try_files 语法: try_files file ... u ...
- [Linux] nginx的try_files指令实现隐藏index.php的重写
1.nginx的try_files指令 ,核心功能是替代rewrite,并且比rewrite更强大的是可以按顺序查找文件是否存在,如果文件都找不到才会执行最后的重定向 解决的问题是,如果一个网站的部署 ...
- 硬核!全网最全Nginx配置指令,建议收藏~
硬核!全网最全Nginx配置指令,建议收藏~ 1.前言 1.1.Nginx配置文件各个主配置块说明 1.2.Nginx配置符号参考 1.3.本文出现的一些词汇介绍 2.正文 2.1.位于全局块的配置指 ...
- Nginx SSI指令配置详解
这篇文章主要介绍了Nginx SSI指令配置详解,本文讲解了什么是SSI.为什么要用SSI.nginx配置SSI.页面上配置.配置示例等内容,需要的朋友可以参考下 什么是SSI Server Side ...
- windows下nginx基本指令
nginx基本指令 1.启动nginx 2.停止nginx 3.重新载入nginx 4.重新打开日志文件 5.查看nginx版本 6.nginx启动时80端口被占用解决方案 7.查看nginx是否启动 ...
- Nginx try_files
Nginx try_files 语法:try_files file - uri; 按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理; 如果给出的file都没有匹配到,则重新请求最 ...
- location ~ .php$,nginx location指令详解,
nginx location指令详解, location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? =开头表示精确匹配 ^~ 开头,注意这不是一个正则 ...
- nginx resolver 指令的使用
官方解释下就是:反向代理的场景,upstream后端用域名时,配置resolver以便于nginx能够解析该域名 Configures name servers used to resolve nam ...
最新文章
- 简易在线实验室管理系统
- 教你打造优秀IT博文
- MeayunDB学习笔记(一) MeayunDB介绍及安装
- java版spring cloud+spring boot+redis多租户社交电子商务平台 (十三)springboot集成spring cache...
- Istio Pilot架构解析
- 银行营业网点管理系统——implt包(CityAreaDaoImpl )
- 图解|查找数组中最大值的5种方法!
- C语言fscanf和fprintf函数的用法详解
- think route.php,ThinkPHP5—路由(route)详解
- 【白皮书分享】2020中国硬科技创新白皮书.pdf(附下载链接)
- Cannot forward ... response ... committed
- 数据库学习笔记5-隔离级别 Repeatable Read
- ipython 安装_IPYTHON安装.DOC
- vs code为什么不出现小黑框_为什么越来越多商家开通微信小程序商城?
- ibm tivoli_Tivoli Access Manager信任关联拦截器(TAI ++)
- oracle 时间函数介绍
- [JsHtml]全面清除前端缓存
- html5设置页面标题,单选(4分) 下面选项中,可以将HTML5页面的标题设置为“我的第一个网页”的是()。...
- Ubuntu 复制文件到远端时错误,Permission denied 失败原因深度探索
- web课程设计网页规划与设计 基于HTML+CSS+JavaScript制作智能停车系统公司网站静态模板