try_files 指令的官方介绍比较让人摸不着頭脑经网上一番总结查看,try_files最核心的功能是可以替代rewrite
按顺序检查文件是否存在,返回第一个找到的文件结尾的斜线表示为文件夹 -$uri/。洳果所有的文件都找不到会进行一个内部重定向到最后一个参数。
务必确认只有最后一个参数可以引起一个内部重定向之前的参数只設置内部URI的指向。 最后一个参数是回退URI且必须存在否则将会出现内部500错误。
命名的location也可以使用在最后一个参数中与rewrite指令不同,如果回退URI不是命名的location那么$args不会自动保留如果你想保留$args,必须明确声明
try_files 将尝试你列出的文件并设置内部文件指向。
你也可以使用一个文件或者狀态码 (=404
)作为最后一个参数如果是最后一个参数是文件,那么这个文件必须存在
需要明确的是出最后一个参数外 try_files 本身不会因为任何原因產生内部重定向。
例如nginx不解析PHP文件以文本代码返回
因为这个指令设置内部文件指向到 $document_root/cache.php 并返回,但没有发生内部重定向,因而没有进行location段处悝而返回文本
(如果加上index指令可以解析PHP是因为index会触发一个内部重定向)
除非注明,本站文章均为: 原创转载请注明本文地址: