Nginxredirect的具体参数列表

我有一些在URL中过时的参数列表。

arg1 arg2 arg3 ... argn 

我需要将链接的查询部分中具有任何参数的任何请求redirect到特定的站点。

 /page.html?arg1=sxx&arg2=uuu -> http://xxx.x.xxx.x /page.php?arg3= -> http://xxx.x.xxx.x /dir/dir/page/?arg2=111&& argn=xyyyy -> http://xxx.x.xxx.x /page.html (is not redirected but matched to other existing rules in nginx) 

任何想法如何很好地expression呢? 由于某些原因,位置没有参数需要通过正则expression式进行匹配。

假设参数顺序是确定性的,您可以针对$ request_uri变量测试多个正则表达式。

map指令可以用来列出多个规则和目的地。

例如:

 map $request_uri $redirect { default 0; ~^/page\.html\?arg1=sxx&arg2=uuu http://xxx.x.xxx.x; ~^/page\.php\?arg3= http://xxx.x.xxx.x; ... } server { ... if ($redirect) { return 301 $redirect; } 

您当然会想通过插入空格( .* )和单词边界( \b )来改进上面的正则表达式。

请参阅此文档中的map指令,以及有关使用if