Можно ли переформатировать параметры URL с помощью лака


У меня есть относительно простой (я думаю) вариант использования, но я не могу найти ни одного примера, где кто-то сделал это. Мы используем лак в качестве кэша и обратного прокси-сервера перед двумя различными приложениями и хотели бы сделать вещи немного более унифицированными в обоих случаях, поскольку они оба делают похожие вещи. Я надеялся, что лак поможет переписать URL-адреса, как показано ниже.

Исходный URL-адрес приложения для разбиения на страницы (получить первые 10 элементов):

http://myapplication.com/products/?startindex=1&endindex=10

Желаемый URL:

http://myapplication.com/products/?paginate=1:10

Это просто один пример (самый сложный, потому что он объединяет два параметра), но во всех случаях входные значения для параметров остаются теми же, просто имена параметров будут меняться.

Другой пример:

http://myapplication.com/search/?query=something

Кому:

http://myapplication.com/search/?q=something
Есть ли у кого-нибудь опыт работы с лаком и как это можно сделать?

Спасибо

1 2

1 ответ:

По-видимому, вы можете. Ответ в том, что регсаб-твой друг.

Например:

if (req.url ~ "(.*)(id=)") {
        set req.url = regsub(req.url, "(feeds/[a-zA-Z]*/)(.*)([\?|&])(id=)([a-zA-Z0-9]*)(.*)", "\1\2\3byGuid=\5\6");
}

Это преобразует и входящий параметр "id" в параметр "byGuid" на серверной части. t также делает кучу вещей с остальной частью строки URL, но основы есть. Так что если кто-то хочет сделать что-то подобное, это хорошая отправная точка.