如何编写此 nginx 重写规则

How to write this nginx rewrite rule

我有一个像这样的 nginx 重写规则

        location ~* /question\-(.*)\.html$ {

                rewrite  "^/question-([0-9]+).html$" "/question/.html";
                rewrite  "^/question-([0-9]+).html$"  /question.php?id=&lm=&pn= break;

         }

这条规则的意思是: 如果 URI 是 /question-123456.html 那么重写为 /question/123456.html /question/123456.html是静态文件,通过question.php创建。

所以当我访问 http://example.com/question-123456.html HTTP rewrite to http://example.com/question/123456.html 如果不存在,我想执行下一个重写 rewrite "^/question-([0-9]+).html$" /question.php?id=&lm=&pn= break;

除了 return 404 给用户。

我会这样写:

location ~ /question-(.*)\.html$ {
    try_files /question/.html /question.php?id=;
}