Have you tried reordering the list? Something like this? Sounds like it's matching on
/it/*
first since it's higher in the list, so any sub URIs won't match as expected...
when HTTP_REQUEST {
switch [string tolower [HTTP::host]] {
"webapps.ou.edu" {
switch -glob [string tolower [HTTP::uri]] {
"/alerts" {
HTTP::redirect "http://www.ou.edu/ouit/help/alerts"
}
"/elections*" {
HTTP::redirect "https://orgsync.com/122675/chapter"
}
"/hsp*" {
HTTP::redirect "http://www.ou.edu/hsp.html"
}
"/it/faculty*" {
HTTP::redirect "http://www.ou.edu/ouit"
}
"/it/staff*" {
HTTP::redirect "http://www.ou.edu/ouit"
}
"/it/students*" {
HTTP::redirect "http://www.ou.edu/ouit"
}
"/it/identity*" {
HTTP::redirect "http://www.ou.edu/content/ouit/security/top10/safeguard_your_personalinformation.html"
}
"/it/newstudents*" {
HTTP::redirect "http://www.ou.edu/ouit/new.html"
}
"/it*" {
HTTP::redirect "http://www.ou.edu/ouit"
}
}
}
}
}