NGINX 提取 URL 的最后一部分

NGINX 提取 URL 的最后一部分

在我的配置文件中,我需要将 URL 的最后一部分提取到一个变量中,以便在重定向中使用,例如,如果 URL 是http://www.example.com/question,我需要“问题”以便设置重写。请问我该怎么做?

答案1

可以通过以下方式实现:

if ($request_uri ~* "([^/]*$)" ) {
  set  $last_path_component  $1;
}

然后,您可以在任何需要的地方使用 $last_path_component 变量。请注意,此正则表达式将返回最后一个 / 之后的所有内容(可能包含在 url 参数中),因此如果您不需要它们,则必须相应地修改上述正则表达式。

答案2

使用正则表达式子匹配——

rewrite ^(.*) http://host.example.com$1 permanent;

常用表达,括号内为元字符将文本分组到捕获块中。第一个括号将分组到 $1 中,第二个括号将分组到 $2 中,依此类推。

相关内容