Capture o subdomínio em uma variável de solicitação chamada req.rewrite_example (que é um nome que acabei de inventar ... o req. é necessário, o resto pode ser o que você quiser) ... faça isso capturando o valor do cabeçalho Host: , convertendo-o para minúsculas e, em seguida, usando o conversor regsub() para eliminar o .example.com no final. Faça isso somente se o nome do host terminar com .example.com - caso contrário, a variável será indefinida e os testes -m found nas regras subseqüentes serão falsas e essas regras não serão disparadas (que é o que queremos, para qualquer outro nome de domínio pode ver).
http-request set-var(req.rewrite_example) req.hdr(host),lower,regsub(\.example\.com$,) if { hdr_end(host) -i .example.com }
Insira a variável capturada no início do caminho, se a variável estiver definida (o que deveria ser, se a primeira regra fosse uma correspondência).
http-request set-path /%[var(req.rewrite_example)]%[path] if { var(req.rewrite_example) -m found }
Substitua o cabeçalho Host: pela string literal example.com se a variável estiver definida.
http-request set-header Host example.com if { var(req.rewrite_example) -m found }
... envie um pedido ...
curl http://www.example.com/tacgnol.jpg
... e os seguintes cabeçalhos estão sendo enviados para o back-end:
GET /www/tacgnol.jpg HTTP/1.1
User-Agent: curl/7.35.0
Accept: */*
Host: example.com
Feito.