来源:自学PHP网 时间:2015-07-25 22:53 作者: 阅读:次
[导读] 这篇文章主要介绍了nginx try_files指令判断文件是否存在实例,本文用一个实际需求讲解try_files指令的使用,并给出配置示例,需要的朋友可以参考下...
现在有这样一个需求,网站根目录下有静态文件,static目录下也有静态文件,static目录下的静态文件是程序批量生成的,我想让nginx在地址不变的前提下优先使用static目录里面的文件,如果不存在再使用根目录下的静态文件,比如访问首页http://example.com/index.html则nginx返回/static/index.html,如果不存在返回/index.html。 经过一番研究可以用if指令实现,关键配置如下,这条配置需要放到靠前的位置 nginx变量默认应该开头有反斜线而结尾没有。 nginx字符串和变量可以直接连接,如果可能有歧义可以花括号括起变量名称,整个字符串必须加双引号 复制代码 代码如下:"${document_root}/static${request_uri}" 是用这种方式有一个缺点,index指令指定的文件不会起作用,比如访问http://example.com/就会404,必须显示的指定文件名才行http://example.com/index.html。可以用rewrite修复,但是感觉不爽,在nginx陷阱页面突然发现一个针对性的指令try_files 参考页面 http://wiki.nginx.org/Pitfalls 后来发现$uri变量本身会自动添加index.html后缀,经过实验这样写也是可以的 if (-e $request_filename) { |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com