使用 Lua 模块在 nginx 中将 endpath 转换为小写

我想在将请求 URL 设置为代理传递之前将其转换为小写。

这是我的 nginx 文件

location ^~ /admin/(?<endpath>.*)
            {
                set_by_lua     ngx.var.endpath string.lower(ngx.var.endpath)
                proxy_pass     http://api.sample.com/api/portal/admin/$endpath$is_args$args;
            }

但是我收到错误消息:无效的变量名“ngx.var.endpath”

点赞
用户2858170
用户2858170

我并不是很了解 Nginx,但根据文档,lua 代码应该是一个字符串。

因此,不要像这样:

set_by_lua     ngx.var.endpath string.lower(ngx.var.endpath)

尝试像这样:

set_by_lua $endpath 'return string.lower(ngx.var.endpath)'
2021-04-30 10:25:58