【nginx】url及带参数的相关配置
2014-03-06 19:41:28| 分类:
软件编程
| 标签:
|举报
|字号大中小 订阅
1. nginx中与url相关的变量
$request_uri
这个变量等于从客户端发送来的原生请求URI,包括参数。它不可以进行修改。$uri变量反映的是重写后/改变的URI。不包括主机名。例如:"/foo/bar.php?arg=baz"
$uri
这个变量指当前的请求URI,不包括任何参数(见$args)。这个变量反映任何内部重定向或index模块所做的修改。注意,这和$request_uri不同,因$request_uri是浏览器发起的不做任何修改的原生URI。不包括协议及主机名。例如:"/foo/bar.html"
$document_uri
同$uri.
2. nginx 根据url参数做跳转
set $api_new '';
if ( $query_string ~* ^arg_a=([0-9]) ) {
set $api_new $1;
}
if ($api_new != '') {
rewrite ^ /new_index.php last;
}
3 url参数在重写时的传递
3.1 rewrite后不带任何原参数
如原url为 : http://www.example.com/test.php?a=yongfu&b=test
跳转后为 : http://www.example.com/new_index.php
rewrite规则为 : rewrite ^ /new_index.php? last;
要点:在rewrite后的地址中添加一个问号 “?”
3.2 rewrite后保留原有参数
如原url为 : http://www.example.com/test.php?a=yongfu&b=test
跳转后为 : http://www.example.com/new_index.php?a=yongfu&b=test
rewrite规则为 : rewrite ^ /new_index.php last;
要点: 只需写出rewrite后的地址,不必特意列出参数
3.3 rewrite后新增参数
如原url为 : http://www.example.com/test.php?a=yongfu&b=test
跳转后为 : http://www.example.com/new_index.php?a=yongfu&b=test&c=new
rewrite规则为 : rewrite ^ /new_index.php?c=new last;
要点:写出rewrite后的地址并添加新增的参数就可以
3.4 rewrite后只保留部分参数
如原url为 : http://www.example.com/test.php?a=yongfu&b=test
跳转后为 : http://www.example.com/new_index.php?a=yongfu
rewrite规则为 : rewrite ^ /new_index.php?c=$arg_a? last;
要点:保留某个特定的参数,可以利用Nginx自带的$arg_PARAMETER参数自行补充来实现
评论这张
转发至微博
转发至微博
评论