如果 request_uri 以特定 strings/regex 开头(有一些例外),则删除参数 - Nginx

Remove args if request_uri begins with specific strings/regex (with some exceptions) - Nginx

我想重定向 (301) 几个位置,如果它们在没有查询参数的相同位置有查询参数,但有一些例外。

例如,我想要这些位置的行为:

如果有几十条这样的规则,我该怎么办呢?也许用 map 指令或其他东西将它组织在单独的文件中?谁能解释一下,好吗?

我想上面例子的答案如下:

http section:

map $request_uri $request_uri_path {
  "~^(?P<path>\/bob\/marley\/?(?:(?!\?|search).)*)(\?.*)$"  $path;
}

server section:

if ($request_uri_path) {
    return 301 $scheme://$http_host$request_uri_path;
}