Nginx映射重定向正则/查询字符串捕获和重定向到新的URL

我正在尝试使用map指令在nginx(openresty)中设置批量重定向,但遇到了从源url捕捉正则/查询字符串并转发到目标url的一些问题。下面是我的设置

nginx.conf代码如下

map_hash_bucket_size 512;
map_hash_max_size 32768;
map $uri $new_redirects {
  default "none";
  include /usr/local/openresty/nginx/conf/new_redirect.map;
   }

Server Block

if ($new_redirects != "none") {
   return 301 $scheme://$http_host$new_redirects;
   }

新的重定向map包含以下重定向

~^/test/123/(\w+)(\w+).*$ /US/en/test/$1-$2;

这个可以正常工作 但我很难为下列字符获取以下内容

  1. Regex捕获的URL一部分

/Product.html?ProdNo=A5441&Brand=COMPANY

在新URL中捕获

/US/en/product/COMPANY-A5441
  1. Regex捕获的URL一部分
/ProductDetail.do?&N5=SEARCH_CONCAT_PNO|BRAND_KEY&F=SPEC&N4=AV35016|COMPANY

在新URL中捕获

/US/en/product/COMPANY-AV35016

任何帮助都将不胜感激,万岁!

点赞