我查看了 nginx 文档,但它仍然让我感到非常困惑。
如何try_files工作?以下是文档中的内容:
尝试文件
语法:try_files path1 [path2] uri
默认值:无
上下文:服务器,位置
可用性:0.7.27
按顺序检查文件是否存在,并返回找到的第一个文件。尾部斜杠表示目录 - $uri /。如果没有找到文件,则调用到最后一个参数的内部重定向。最后一个参数是回退 URI, 必须存在,否则将引发内部错误。与重写不同,如果回退不是命名位置,则 $args 不会自动保留。如果您需要保留 args,则必须明确这样做:
我不明白它是如何检查路径的,如果我不想出现内部错误但让它恢复路径的其余部分以寻找另一个文件怎么办?
如果我想尝试缓存文件,/path/app/cache/url/index.html如果尝试失败,/path/app/index.php我该怎么写?如果我写:
try_files /path/app/cache/ $uri
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
Run Code Online (Sandbox Code Playgroud)
我有index index.php index.html index.htm;。当我访问/urlname,它会尝试检查/path/app/cache/urlname/index.php然后/path/app/cache/urlname/index.html?如果我们忽略一切之后try_files是否可以try_files检查缓存文件夹?我一直在努力,但失败了。
nginx ×1