NGINX和LUA强制使用小写URI,同时保留查询字符串

问题描述 投票:0回答:1

注意:Lua noob

[在不修改和附加查询字符串参数的情况下,尝试强制使用小写URI。

我能够使用lua string.lower(ngx.var.uri)处理URI,但它删除了查询字符串。

我曾尝试将$is_args$args添加到我的try文件中,但相信在此之前已将其删除。

我想我必须在lua中用ngx.req.get_uri_args创建一个表,并创建另一个块以在将URI转换为小写形式之后将其附加回去。只是不确定这是否是正确的方法

我还没有看过有关如何使用ngx.req.set_uri_args在set_by_lua_block结果上设置args的文档,而仅仅是初始请求。

这里是我尝试过的两个代码块。

#works for just URI, but drops query string parameters 

set_by_lua_block $uri_lowercase { return string.lower(ngx.var.uri) }

location ~ [A-Z] {
        try_files $uri $uri/ $uri_lowercase $uri_lowercase/ =404;
 }

也尝试过此方法,但不起作用:(

       location ~ [A-Z] {
                try_files $uri $uri/ $uri_lowercase$is_args$args $uri_lowercase/$is_args$args  =404;
        }

这里的任何想法都很感激-谢谢帮派

注意:Lua noob尝试强制小写URI,同时保持查询字符串参数未修改和附加。我能够使用lua string.lower(ngx.var.uri)来处理URI,但是它正在删除...

nginx lua
1个回答
0
投票

因此可以正常工作,但是会进行内部重写-将网址保留为大写形式。

© www.soinside.com 2019 - 2024. All rights reserved.