Forum Discussion
dan_19334
Dec 20, 2010Nimbostratus
determine HTTP or HTTPS
What is the best way to determine if the connection came in HTTP or HTTPS? I want to have a common iRule applied to both port 80 & 443 that redirects the connection to a different location but keeps ...
- Sep 24, 2015
Patrik, good one. You have typo. It should be:
if { [PROFILE::exists clientssl] == 1 } { set protocol "https" } else { set protocol "http" }
I'm doing this on CLIENT_ACCEPTED. The method with CLIENTSSL_HANDSHAKE will not work because BIG-IP refuse to load it on VS without SSL profile.
JRahm
Jan 12, 2011Admin
Another option is a small tcp collect in the CLIENT_ACCEPTED event to see if a method is present:
class httpmethods {
{
"CONNECT"
"DELETE"
"GET"
"HEAD"
"OPTIONS"
"POST"
"PUT"
"TRACE"
}
}
when CLIENT_ACCEPTED {
TCP::collect 5
}
when CLIENT_DATA {
if { [class match [TCP::payload] equals httpmethods] } {
set nonssl 1
} else { set nonssl 0 }
}
when HTTP_REQUEST {
if { $nonssl } {
HTTP::redirect "http://abc123.com[HTTP::uri]"
} else { HTTP::redirect "https://abc123.com[HTTP::uri]" }
}
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects