我是 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 的变量,并将其与字符串一起返回。