nginx try_files

语法

格式1:

try_files file ... uri;

格式2:

try_files file ... =code;

说明:

  • 按指定的 file 顺序查找存在的文件,并使用第一个找到的文件进行请求处理

  • 查找路径是按照给定的root或alias为根路径来查找的

  • 如果给出的file都没有匹配到,则重新请求最后一个参数给定的uri,就是新的location匹配

  • 如果是 格式2,如果最后一个参数是= 404,若给出的file都没有匹配到,则最后返回404的响应码

例子

root /var/www/html;   # 资源所在的目录位置
index index.html index.htm index.nginx-debian.html;   # 默认首页

location / {   # 通用匹配路径
    try_files $uri $uri/ =404;   # 查找资源
}

请求 http://127.0.0.1/images/test.gif 会依次查找:

  1. $uri表示查找文件/var/www/html/images/test.gif,如果找到就显示,没有找到继续查找
  2. $uri/表示在文件夹 /var/www/html/images/test.gif/下的index文件,如果找到就显示,没有找到继续查找
  3. =404 报404错误

注意: try-files 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页 即 访问 http://127.0.0.1/ 不会去访问 http://127.0.0.1/index.html


原文出处:/show_1EF5xUBlyV1Z.html