Forum Discussion
ScottE
MVP
Mar 13, 2008iRule to strip out a query variable
I'm building an iRule that strips off one of the query variables, namely "_". From the logs and documentation this _should_work but it is NOT setting the HTTP::uri as anticipated.
F5: BIG-IP 9.2.4 Build 13.1
---------------------------------------------------------------------
when HTTP_REQUEST {
if {[HTTP::query] contains "&_="} {
log local0. "--------------------------"
log local0. "HTTP::uri: [HTTP::uri]"
log local0. "HTTP::query: [HTTP::query]"
set newquery ""
set namevals [split [HTTP::query] "&"]
for {set i 0} {$i < [llength $namevals]} {incr i} {
set params [split [lindex $namevals $i] "="]
set pnum {$i+1}
if {[lindex $params 0] != "_"} {
only prepend a & when not the first variable
if { $newquery contains "&" } {
append newquery "&"
}
add variable and value to newquery
append newquery [lindex $params 0] "=" [lindex $params 1]
}
}
log local0. "new query string $newquery"
rebuild new uri with path and query string
set newuri [HTTP::path]
append newuri "?" $newquery
log local0. "new uri: $newuri"
set the uri request to the new one
HTTP::uri $newuri
log local0. "new HTTP::uri: [HTTP::uri]"
log local0. "--------------------------"
}
}
----------------------------------------------------------------------------
Example logs:
-----------------------------------------------------------------------------
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : HTTP::uri: /cp/wu/as?getAlertMessage=true&_=1205438360315
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : HTTP::query: getAlertMessage=true&_=1205438360315
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new query string getAlertMessage=true
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new uri: /cp/wu/as?getAlertMessage=true
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new HTTP::uri: /cp/wu/as?getAlertMessage=true&_=1205438360315
Mar 13 12:59:20 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : --------------------------
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : --------------------------
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : HTTP::uri: /cp/wu/as?getAlertMessage=true&_=1205438710749
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : HTTP::query: getAlertMessage=true&_=1205438710749
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new query string getAlertMessage=true
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new uri: /cp/wu/as?getAlertMessage=true
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : new HTTP::uri: /cp/wu/as?getAlertMessage=true&_=1205438710749
Mar 13 13:05:10 tmm tmm[1034]: Rule dev.usource.uvic.ca_strip_query_variable : --------------------------
The iRule line that is NOT working seems to be:
HTTP::uri $newuri
What is not correct about that?
Thanks
Scott Campbell
No RepliesBe the first to reply
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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
