Forum Discussion
Arie
Oct 16, 2014Altostratus
Updating an external data group (class) is cumbersome; you're better off using an internal class. You mentioned "hundreds" of entries, which really isn't much at all.
However, as you already suspected it would be much easier to simply manipulate the string.
However, I'm not entire sure what you're looking for. Is the first folder name (e.g. www.foo.com) always the hostname you want to redirect to? Are there any requests to www.site.com that should not be redirected?
If the answer to the first question is "yes" and the answer to the second question is "no" you should be able to use this:
when HTTP_REQUEST {
extract the string between the first and second slash,
assuming that this is always the hostname to redirect to.
Use a skip count of 1 to strip the first slash.
set hostname [findstr [string tolower [HTTP::path]] "/" 1 "/"]
Remove the hostname part of the uri. Using "string map"
because it retains the case of the URI
(important for Linux/Apache, and also to retain the case
of any query strings)
set uri [string map -nocase {"/$hostname" ""} [HTTP::uri]]
HTTP::respond 301 Location "http://$hostname$uri"
}
Note: I don't have a BIG-IP handy right now so I didn't test the iRule.