NGINX用参数重写规则

时间:2014-07-28 12:18:46

标签: redirect nginx url-rewriting

我坚持使用NGINX重写规则,并希望你可以帮助我或指出正确的方向。我的问题看起来像这样:

如果出现特定参数,我想重写一个URL。例如,参数= 1,如下所示: www.old_domain.com?argument=1&id=1&l=dfsdgsh

如果出现此参数标志,则将其重定向到另一个域,但保留参数= 1之后的部分。例如,重定向到:www.new_domain.com?id = 1& l = dfsdgsh

我了解如何将整个旧域重定向到新域,但是我无法理解如何识别参数标志,以及如何将最后一部分带到新域。

干杯, Szop

1 个答案:

答案 0 :(得分:2)

示例:

if ( $args ~ argument=([0-9]+)&id=1&l=([\w]+) ) {
    set $arg  $1;
    set $l $2;
 }

if ( $arg = 1) {
   rewrite (.*)  http://domain1/?id=$arg&l=$l?;
}

if ( $arg = 2) {
       rewrite (.*)  http://domain2/?id=$arg&l=$l?;
}