相当于NGINX中的“map $status status_title status_desc”

ie3xauqp  于 2023-03-22  发布在  Nginx
关注(0)|答案(1)|浏览(150)

我一直在寻找一种方法,让一个Map的响应代码($status变量)和一个标题和一个描述作为值,这样我就可以有一个Map的所有响应代码(400,401,[..],500,501等),并在一个静态页面中使用它(与SSI活动),我会做这样的事情:

<h1><!--# echo var="status" default="" --> <!--# echo var="st
atus_title" default="Something is wrong" --></h1>
<p align="center"><!--# echo var=""status_desc" default="" --></p>

目前我有两张Map,如下所示:

map $status $status_title {
  400 'Bad Request';
  401 'Unauthorized';
  [..]
}

map $status $status_desc {
  400 'The server cannot or will not process the request due to something that is perceived to be a client error.';
  401 'The client must authenticate itself to get the requested response.';
  [..]
}

这是不工作的,虽然我没有得到任何错误时,检查语法与nginx -t .我怎么能把这两个Map到一个,以便我可以得到一个自定义的错误代码,错误标题和错误描述在我的错误页面?
先谢了。

hsvhsicv

hsvhsicv1#

没关系,问题不在Map上,而是在HTML模板中的语法错误。行:

<p align="center"><!--# echo var=""status_desc" default="" --></p>

应改为:

<p align="center"><!--# echo var="status_desc" default="" --></p>

它现在按预期工作。我将把这个留给将来参考。

相关问题