我想替换$args
rewrite
的第一个字符
我有以下内容:
return 302 https://domain/accounts/registration?_uid=1928&_tag=$request_uri&$args;
如果$args
为空我只是得到一个以&
结尾的链接,这不是一个大问题,但如果我有一些$args
我得到something&?arg1
这是&?
错误,因为?
被视为前一个参数的延续。
如何从$args
删除第一个字母(1.0.0
)?
答案 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。