Forum Discussion
jgranieri
Jan 20, 2012Nimbostratus
Help with logic on header check irule
Hello All,
So i have an irule in which I need to check http header for mozilla then check the URI then LB appropriately. after this condition I have 2 other URI that are from a browser and need to be LB appropriately.
So If /aaa does not come from mozilla send to pool aaa, otherwise send to zzzz
/bbb and /ccc are browser based and need to go to the respective pools.
I know I have the default pool at the end but i need to somehow that with an else after the
"*/aaa*" { pool aaa }
{else}
pool zzz}
/bbb and /ccc are browser based and will contain mozilla in the header field
when HTTP_REQUEST {
if { not [string tolower [HTTP::header Accept]] contains "Mozilla" } {
switch -glob [HTTP::host][HTTP::uri] {
"*/aaa*" { pool aaa }
"*/bbb*" { pool bbb }
"*/ccc*" { pool ccc }
default {
pool zzz }
}
}
}
3 Replies
Sort By
- OK, so you seem to be saying that /aaa is a special treatment compared to /bbb and /ccc? in which case, I think you're describing this:
when HTTP_REQUEST { switch -glob [HTTP::uri] { "/aaa*" { if { not [string tolower [HTTP::header "User-Agent"]] contains "mozilla" } { pool aaa } else { pool zzz } } "/bbb*" { pool bbb } "/ccc*" { pool ccc } } }
- Good points Chris. Also, if you're setting the User-Agent header to lowercase make sure the string you're comparing it with is lower case, like "mozilla".
- @ Chris - Yes I need /aaa to be lb based on header field detection I will try your changes.
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