Fixed! I had to make haproxy pick the correct backend (OpenSprinkler) based on path or referer. This is in the frontend config:
acl url_sprinklers path_beg -i /sprinklers
acl referer_sprinklers hdr_dir(referer) -i /sprinklers
use_backend sprinklers if url_sprinklers
use_backend sprinklers if referer_sprinklers
And this URL re-writing is in the backend:
reqrep ^([^\ ]*\ /)sprinklers[/]?(.*) \1\2