替换$ args中的第一个字符

时间:2017-10-16 19:28:02

标签: nginx

我想替换$args

rewrite的第一个字符

我有以下内容:

return 302 https://domain/accounts/registration?_uid=1928&_tag=$request_uri&$args;

如果$args为空我只是得到一个以&结尾的链接,这不是一个大问题,但如果我有一些$args我得到something&?arg1这是&?错误,因为?被视为前一个参数的延续。

如何从$args删除第一个字母(1.0.0)?

1 个答案:

答案 0 :(得分:0)

$request_uri已包含可选的?和查询字符串。因此,您的额外?来自$request_uri,而不是来自$args

您可以尝试使用$uri&$args代替$request_uri,这会将嵌入的?替换为&

例如:

return 302 https://domain/accounts/registration?_uid=1928&_tag=$uri&$args;

但是,$request_uri中的任何百分比编码字符都会在构建$uri时完全解码 - 这可能会影响您的应用程序,也可能不会影响您的应用程序。

有关详情,请参阅this document