Назад | Перейти на главную страницу

Как я могу заставить haproxy перезаписать URL-адрес, сохранив переменную, которая находится в середине пути?

Я пытаюсь перенаправить URL-адрес, который выглядит как http: // хост / api / getThingByID / 12345 к http: // хост / api / addr / 12345 / getThing

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

После долгих экспериментов я нашел решение. Вы можете просто связать regsub () подряд, используя следующее правило:

http-request redirect code 301 location %[url,regsub(^/api/getThingByAddr,/api/addr/,),regsub($,/getThing,)] if { path_beg /api/getThingByAddr }