nginx重写的问题

nginx重写的问题,nginx,rewrite,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") {

嗨,我需要重写这个:

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和值2为常数,则可以使用:

    if ($args ~ "var1=value1&var2=value2") {
          set $args / ;
          rewrite ^.*$  /const2 permanent;
    }
另一个解决方案是更灵活的,它应该与其他值一起工作,但我没有设法与regex一起工作(这一个不起作用,但不应该太远):


这个问题我不清楚。上面写着重写到“/const2”。但你试图从“/const2”重写?另外,失败测试的实际输出是什么?关键是变量没有通过。www.site.com/foo.php中的const2是否与www.site.com/const2中的const2相同?如果它是一个常数,为什么要把它变成一个变量?好的,但是我应该在什么位置使用第一个解呢?
location / {
    rewrite ^/foo.php.*var2=.*$ /$2 redirect;   
}