Do you actually expect Host header values other than test.company.com? Assuming not, you could try this to verify the URI matches for the rewrite:
when HTTP_REQUEST {
check if the path of the request starts with "/branch1/workinggroup"
if {[HTTP::path] starts_with "/branch1/workinggroup"}{
HTTP::header replace "Host" "test.company.com"
HTTP::uri "/programs/logic1.php"
check if the path of the request starts with "/branch2/workinggroup"
} elseif }{[HTTP::path] starts_with "/branch2/workinggroup"}{
HTTP::header replace "Host" "test.company.com"
HTTP::uri "/programs/logic2.php"
}
}
If you do want to validate the Host header equals "test.company.com" you could wrap the path checks in an 'if'.
Aaron