nginx 错误映射

nginx 错误映射

如何将 nginx 中的错误代码/页面映射到更具描述性的文件名?

例如,

我有一个包含类似错误的目录404-NotFound,我想轻松地将 404 错误代码映射到 nginx 中。我不想手动指定每个 error_page 映射,因为这很繁琐。它还会使 conf 文件膨胀,因为必须为每个服务器执行此操作。

我已经设置了地图但是对 nginx 还不熟悉,不知道如何让它们协同工作。

(我的所有错误页面都以错误代码开头,因此,事实上,我宁愿有某种方式来自动找到文件,因为每个错误代码只有一个文件。

例如,错误 404 映射到文件 404-NotFound.html,如果我不必指定这个就好了,但不知何故它会自动检测到。)

我还想支持多种语言...

答案1

错误页面可以在 URI 部分包含变量,但不能在代码中包含变量,因此无论如何都需要您明确设置该列表。在合适的 Nginx 版本(1.3.2、1.2.2)中多变的 $status出现了,允许以这样的方式接近你的目标:

error_page 404 403 … @err;

location @err {
    try_files /html/error/$status.html /html/error/default.html;
}

答案2

我还没有测试过这个,如果你有时间,请尝试这个:

  recursive_error_pages on;
  error_page 400 403 404 407 500 502 503 504 /path/to/$status-ErrorPage.html;

祝你好运!

编辑:做了一些研究,发现,现在我刚刚得知这是个坏主意

相关内容