NGINX и LUA принудительное использование URI в нижнем регистре при сохранении строки запроса - PullRequest
0 голосов
/ 30 апреля 2020

ПРИМЕЧАНИЕ: Lua noob

Попытка форсировать URI в нижнем регистре при сохранении неизменных и добавленных параметров строки запроса.

Мне удалось использовать lua string.lower(ngx.var.uri) для обработки URI, но он отбрасывает строки запроса.

Я пытался добавить $is_args$args в мои файлы попытки, но считаю, что он был удален до этого.

Думаю, мне нужно создать таблицу с ngx.req.get_uri_args в lua и создать еще один блок для добавления его обратно после преобразования URI в нижний регистр ... просто не уверен, что это правильный подход

У меня есть не видел документов о том, как использовать ngx.req.set_uri_args для установки аргументов на результат set_by_lua_block, а не только на начальный запрос.

Вот два кодовых блока, которые я пробовал.

#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;
        }

любые мысли здесь приветствуются - спасибо банда

1 Ответ

0 голосов
/ 30 апреля 2020

Так что это работает, но выполняет внутреннюю перезапись, которая оставляет URL-адрес в верхнем регистре браузера.

Перезаписывает все URI, которые имеют верхний регистр, без влияния на файлы активов. ПРИМЕЧАНИЕ: добавлен nginx -extras на NGINX с открытым исходным кодом 1.14.0 в Ubuntu

Я изменил свой блок следующим образом:

        set_by_lua $uri_lowercase "return string.lower(ngx.var.uri)";
        location ~ (([A-Za-z])\w+(?!(ttf|woff2|otf|eot|svg|png|jpg|jpeg|css|js)$)([^.]+$)) {
        rewrite ^(.*)$ $scheme://$host$uri_lowercase;
        }

Regex Объяснение

([A-Z])\w+ = Любое слово, содержащее заглавные буквы

(?!(ttf|woff2|otf|eot|svg|png|jpg|jpeg|css|js)$) = отрицательный взгляд вперед. Указывает группу, которая не может соответствовать после основного выражения (если оно совпадает, результат отбрасывается).

([^.]+$) = установлен отрицательный, делает не захватывать строки, оканчивающиеся точкой, например стиль. css

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...