HAProxy - forward to a different web server based on URI
Solution 1:
Here is a blog post I wrote on load balancing based on the host headers:
http://www.mattbeckman.com/2009/09/18/using-the-acl-in-haproxy-for-load-balancing-named-virtual-hosts/
If you would like to match against a URI or directory, I would suggest using path_beg instead of hdr_end that is used in the example provided on that page. Below is an example of how you might do this with your configuration:
frontend http-in
bind 10.254.23.225:80
acl has_special_uri path_beg /special
use_backend special_server if has_special_uri
default_backend webfarm
backend webfarm
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webA 10.254.23.4:80 cookie webA check
server webB 10.248.23.128:80 cookie webB check
backend special_server
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webC 10.0.0.1:80 cookie webC check
Hope that helps!