Это для HaProxy 1.4, поэтому нам нужно решение reqrep, если это возможно.
У нас есть входящие URL, которые имеют переменные пути, такие как:
my.url.com / oldpath1 / oldpath2/ oldpath3 / oldpath4 / capture_path
my.url.com / oldpath1 / oldpath2 / oldpath3 / capture_path
my.url.com / oldpath1/ oldpath2 / capture_path
Нам нужно правило reqrep, чтобы получить capture_path для перезаписи URL на:
my.url.com / newpath/ capture_path
Мы попробовали следующие шаблоны регулярных выражений без успеха:
reqrep ^ ([^ \] *) \ ([^ /] +) $ \ 1\ / newpath / \ 2
reqrep ^ ([^ \] *) \ ([^ /] +) (\ [^ \] +) $ \ 1 \ / newpath / \ 2 \ 3
Оба эти шаблона, похоже, полностью игнорируются, но у нас возникают проблемы с устранением неполадок, поскольку ничего не получается в журналах.
Если мы это сделаем:
reqrep ^ ([^\] *) \ /oldpath1/oldpath2/(.*) \ 1 \ / newpath / \ 2
Это работает для my.url.com/ oldpath1 / oldpath2 / capture_path, но, похоже, ему не нравится часть ([^ /] +) $ регулярного выражения, которая пытается динамически захватить последнюю часть пути.
Записьправило для каждого варианта - не вариант, так как «oldpath1» и т. д. сами по себе являются переменными, а не статическими значениями.
Кто-нибудь сталкивался с этой проблемой раньше?