Могу ли я переформатировать мои URL-параметры с лаком
-
30-09-2019 - |
Вопрос
У меня относительно простой (я думаю) корпус, но я не могу найти никаких примеров, когда кто-то сделал это. Мы используем лак в качестве кеша и обратного прокси перед двумя различными приложениями и хотели бы сделать вещи немного более унифицированными на обоих, как они оба делают подобные вещи. Я надеялся, что лак может помочь переписать 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
У кого-нибудь есть опыт работы с лаком и как это можно сделать?
Спасибо
Решение
Видимо вы можете. Ответ заключается в том, что Regsub твой друг.
Например:
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-строки, но на основании. Так что, если кто-то хочет сделать что-то подобное, это хорошая отправная точка.