I don't see any problem with the iRule.
I just tested in my lab, and works fine.
when HTTP_REQUEST {
log local0. "URL = http://[HTTP::host][HTTP::uri]"
if { ( [string tolower [HTTP::host]] eq "asm.lab.local" ) && ( [HTTP::uri] eq "/") } {
HTTP::redirect "http://asm.lab.local/admin/"
}
}
Mar 21 13:42:10 LABBIGIP1 info tmm4[20610]: Rule /Common/test1 : URL = http://asm.lab.local/
Mar 21 13:42:10 LABBIGIP1 info tmm4[20610]: Rule /Common/test1 : URL = http://asm.lab.local/admin/
If you are redirecting from HTTP to HTTPS, you should have another virtual server to handle the HTTPS traffic.
With or without clientssl profile, and serverssl, based in your setup.