Com o HAProxy 1.5: use um cabeçalho temporário para construir um novo caminho a partir do existente na solicitação e, em seguida, execute diretamente um redirecionamento
# Clean the request and remove any existing header named X-Rewrite
http-request del-header X-REWRITE
# Copy the full request URL into X-Rewrite unchanged
http-request add-header X-REWRITE %[url] if { path_beg /old_path }
# Change the X-REWRITE header to contain out new path
http-request replace-header X-REWRITE ^/old_path(/.*)?$ /new_path if { hdr_cnt(X-REWRITE) gt 0 }
# Perform the 301 redirect
http-request redirect code 301 location http://%[hdr(host)]%[hdr(X-REWRITE)] if { hdr_cnt(X-REWRITE) gt 0 }
No HAProxy 1.6, use o filtro regsub
http-request redirect code 301 location http://%[hdr(host)]%[url,regsub(^/old_path,/new_path,)] if { path_beg /old_path }
fonte entre outra configuração útil snippets
Mais informações estão disponíveis na documentação do HAProxy para a palavra-chave regsub .