Nginx的try_files指令

by Web全栈工程师 on 2016 年 09 月 03 日

Nginx配置语法里有一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。

try_files指令说明

try_files指令
语法:try_files file ... uri 或 try_files file ... = code
默认值:无
作用域:server location

其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

需要注意的是,只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中。与rewrite指令不同,如果回退URI不是命名的location那么$args不会自动保留,如果你想保留$args,则必须明确声明。

使用示例:

try_files $uri $uri/ /index.php?q=$uri&$args;	

用途

Vue Router有hash模式和history模式两种,hash模式的URL中存在#,而history模式不包含#,但是history模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面,如果后端的Nginx服务没有配置好,页面会出现404错误。

配置示例:

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

原创文章,转载请注明:转载自Web开发笔记 | Nginx的try_files指令

本文链接地址:https://www.magentonotes.com/nginx-conf-try-files.html

Comments on this entry are closed.

Previous post:

Next post: