有很多简单的事情不需要完整的 localhost 软件安装...假设我必须将域的URL重定向到其他域,但是需要转换REST参数字符串(例如名称或ID)转换为小写字符串。
在Unix中,我不需要安装新软件即可进行这种非常简单的转换……我可以做echo "UPPERcase" | tr A-Z a-z
。
我需要使用服务器端Unix基本安装来解决基本的NGINX问题。用户定义的函数ToLower(x)
可以是NGINX对tr A-Z a-z
的调用。
客户请求:
GET /NComms7368 HTTP/1.1
Host: mydoi.example.org
服务器响应:
HTTP/1.1 301 Moved Permanently
Location: https://doi.org/10.1038/ncomms7368
我们可以想象NGINX的简化形式(以及我的幻想语法{ToLower($uri)}
),如下所示:
server {
server_name mydoi.example.org;
rewrite ^http://doi.org/10.1038/{ToLower($uri)}? permanent;
}
因此,我正在寻找一种在NGINX上定义函数的方法,以及一种调用已注册函数的语法。
PS1:看到“相似但不相同”的question here。
PS2:这不是一个现实问题,仅是一个例子-您可以将its server will convert与DOI一起使用大写字母。