nginx:重写指令的try_files等价物将不起作用

/GET-cache/contact.html上有一个文件,并用这个指令请求URI /contact ,它按预期工作:

 if (-f $document_root/$request_method-cache$uri.html) { rewrite (.*) /GET-cache/$1.html break; } 

这一个不:

 try_files $request_method-cache$uri.html @backend; 

try_files指令中使用$document_root也不起作用(当我说它不起作用的时候,请求被传递到后端而不是nginx服务静态文件)。

我错过了什么吗?

我认为这只是一个不以正斜杠开始检查的问题。 尝试这个:

try_files /$request_method-cache$uri.html @backend;

Nginx将每个参数应用于根指令的try_files。 所以如果你的根目录是/var/www那么它会检查var/wwwGET-cache/foo.html