Hi Steve,
There was a mistake as I was testing HTTP after I have added the logs statement. It works with HTTPS only when I have create a new iRule as following (with or without logs' statement of course):
when HTTP_REQUEST {
switch [string tolower [HTTP::path]] {
"/xyz/abc" {
pool Pool_X
snat 10.10.10.1
}
}
}
The previous iRule which was not working include some additional operator at the begining, so it's something like below:
when HTTP_REQUEST {
switch [string tolower [HTTP::host]] {
"www.example.com" -
"example.com" -
"" {
switch [string tolower [HTTP::path]] {
"somestring1" { HTTP::redirect "https://someurl1" }
"somestring2" { HTTP::redirect "https://someurl2" }
"somestring3" { HTTP::redirect "https://someurl3" }
"/xyz/abc" {
pool Pool_X
snat 10.10.10.1
}
}
}
}
}
So I suspect that it could be something related to HTTP::host switch statement as this is the only difference I can see between the two iRules. In the other hand, the HTTP::host value which are expected on HTTPS requests are all mentioned on the list above !! I'm not sure where is the issue with the old iRule :(