I couldn't say exactly why but this won't work, you're doing too much at once. This should;
when HTTP_REQUEST {
Compare the request URI with the strings in the uri-dg data group
and populate the variable: redirect with the associated value if
there is a match
set redirect [class match -value [HTTP::uri] equals dg_redirect]
As long as our variable: redirect isn't empty, perform the redirect
if { $redirect ne "" } {
HTTP::redirect "http://[HTTP::host]$redirect"
}
If there wasn't a match and variable: redirect is empty, do something
else instead
else {
log local0. "No redirect occurred for: [HTTP::uri]"
}
}