You could try a switch:
when HTTP_REQUEST {
switch -glob [string tolower [HTTP::uri]] {
"/isadmin/isreps/*" -
"/isadmin/issf/*" -
"/isadmin/ismailrouting/*" -
"/isadmin/isagentconsole/*" {
pool reps-80
}
"/isadmin/issearch/*" {
pool search-80
}
"/isadmin/isutils/*" {
pool utils-80
}
"/isadmin/isresplib/*" {
pool nice-80
}
default {
discard
}
}
}
Otherwise, if you want to maintain your if /elseif:
when HTTP_REQUEST {
if { [string tolower [HTTP::uri]] starts_with "/isadmin/isreps"} {
pool reps-80
} elseif { [string tolower [HTTP::uri]] starts_with "/isadmin/issf"} {
pool reps-80
} elseif {... } {
} else { discard }
}