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;
}