nginx:try_files 等效于重写指令不起作用

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;

$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

相关内容