从位置的路径中获取值并将其与 nginx 中的字符串一起返回

从位置的路径中获取值并将其与 nginx 中的字符串一起返回

我是 Nginx 世界的新手。在学习它的过程中,我试图实现这一点:我希望每当有人访问此 URL:/greet/user 时都返回一个字符串,该字符串将是“Hello user”。因此,如果有人访问 localhost/greet/john,页面将显示此字符串:“Hello john”;如果 URL 是 localhost/greet/merry,则字符串将是“Hello merry”。

我尝试使用以下代码片段来实现这一点。需要注意的是,我确实使用了正则表达式来捕获第二个参数。

location ~/greet/(user+) {
    set $user user;
    return 200 'Hello ${user}';
}

我在这里遗漏了什么?应该怎么做?我的操作系统是 Ubuntu 22.04。这是我关于服务器故障的第一篇文章,我对 Web 服务器领域还很陌生。因此,如果我在撰写这篇文章时遗漏了任何内容,我希望不会受到任何惩罚。

答案1

我已经搞清楚了。我做错的是正则表达式。它捕获了任意数量的“r”,然后使用。

因此正确的代码如下:

location ~ /greet/(\w+) {
    set $user $1;
    return 200 'Hello ${user}';
}

我将第一个单词设置为名为 user 的变量,并将其与字符串一起返回。

相关内容