arg_PARAMETER和is_args

$arg_PARAMETER

1
2
3
$arg_PARAMETER	#这个变量包含GET请求中,如果有变量PARAMETER时的值
$args #这个变量等于请求行中(GET请求)的参数,如:foo=123&bar=blahbla
$is_args #如果有args参数,这个变量等于"?",否则等于""(空值)


rewrite重写URL参数

/plaza/searchAll.html?tb_search=连衣裙&type=[item|shop]

/m/search/searchlist/index.html?keyword=连衣裙&type=[商品|店铺]

1
2
3
rewrite ^/plaza/searchAll.html /m/search/searchlist/index.html?keyword=$arg_tb_search&type=$arg_type? permanent;
# 使用arg_参数名(arg_type),去匹配到具体参数所带的值
# 最后的?可以阻止请求中原来的参数再带过来放到重写后的url里

注:

  • rewrite只能对域名后边的除去传递的参数外的字符串起作用

  • 默认的情况下,Nginx在进行rewrite后,都会自动添加上旧地址中的参数部分