nginx重写有问题

时间:2013-03-17 23:18:08

标签: nginx rewrite

嗨所以我需要重写一遍:

www.site.com/foo.php?var1=value1&var2=value2

到此:

www.site.com/value2

我试过了:

location /value2 {
  rewrite ^/value2/?$ /foo.php?var1=value1&var2=value2;
}

这个变种似乎有效,但关键是变量没有通过......

和此:

location /foo.php {
if ($arg_var2 ~ "value2") {
        rewrite ^ http://site.com/$arg_var2? permanent;
    }
}

但它不起作用......任何想法?提前致谢

1 个答案:

答案 0 :(得分:0)

如果value1和value2是常量,则可以使用:

    if ($args ~ "var1=value1&var2=value2") {
          set $args / ;
          rewrite ^.*$  /const2 permanent;
    }

另一个解决方案是更灵活的东西,它可以与其他值一起使用,但我没有设法使用正则表达式(这个不起作用,但它不应该太远):

location / {
    rewrite ^/foo.php.*var2=.*$ /$2 redirect;   
}