拥有一个文件/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;
$document_root
在指令中使用try_files
也不起作用(我说它不起作用的意思是请求被传递到后端而不是 nginx 提供静态文件)。
我是否遗漏了什么?
答案1
我认为这只是检查时不要使用正斜杠的问题。试试这个:
try_files /$request_method-cache$uri.html @backend;
Nginx 将 try_files 的每个参数应用于 root 指令。因此,如果您的 root 是,/var/www
那么它将检查var/wwwGET-cache/foo.html