Forum Discussion
TJ_Vreugdenhil
Jun 28, 2017Cirrus
irule to match on 2nd parameter name and value
I want to capture on the 2nd parameter name and value. If memid=x then send to this node. However, the irule is only matching the tokenid portion. But I can only get it to match on tokenId (the first parameter).
Here is the test URI:
http://test.domain.org/HBNetRD/App/Signon/SSOInit?tokenId=r43DRErQu0CpO_smc2kEfSzGEn6w&memid=1
`
Could I be hitting this bug. I am on 12.1.2:
[https://devcentral.f5.com/questions/uri-query-question-20954](https://devcentral.f5.com/questions/uri-query-question-20954)
`when HTTP_REQUEST {
switch [string tolower [HTTP::query] {
"memid=1" { node 1.1.1.1] }
"memid=2" { node 2.2.2.2] }
"memid=3" { node 3.3.3.3] }
"memid=4" { node 4.4.4.4] }
"memid=5" { node 5.5.5.5] }
default { pool p80_pool }
}
log local0. "Sending HTTP path [HTTP::query] to node [LB::server addr]"
}
curl -I http://10.1.10.20/?token=123&memid=5
Jun 28 10:40:28 F51_v12 info tmm1[12424]: Rule /Common/MEMBER_TO_OLB : Sending HTTP query /?token=123 to node /Common/p80_pool 0
It will match on this:
?token=123memid=1
not this:
?token=123&memid=1
- Stanislas_Piro2Cumulonimbus
Hi,
you can use this irule:
when HTTP_REQUEST { switch [string tolower [URI::query [HTTP::uri] memid]] { "1" { node 1.1.1.1] } "2" { node 2.2.2.2] } "3" { node 3.3.3.3] } "4" { node 4.4.4.4] } "5" { node 5.5.5.5] } default { pool p80_pool } } log local0. "Sending HTTP path [HTTP::query] to node [LB::server addr]" }
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