shouldn't it be HTTP::query in HTTP::redirect (rather than HTTP::uri)?
HTTP::query
https://devcentral.f5.com/wiki/iRules.http__query.ashx
e.g.
[root@ve11a:Active:In Sync] config tmsh list ltm rule qux
ltm rule qux {
when HTTP_REQUEST {
if { [string tolower [HTTP::uri]] contains "points" or [string tolower [HTTP::uri]] contains "abcd" } {
HTTP::redirect "https://points.website.com/?[HTTP::query]"
}
}
}
[root@ve11a:Active:In Sync] config curl -I http://www.website.com/points?icid=ABCD_PROMO_POINTS
HTTP/1.0 302 Found
Location: https://points.website.com/?icid=ABCD_PROMO_POINTS
Server: BigIP
Connection: Keep-Alive
Content-Length: 0