Forum Discussion
Modify URI among other things
Here's what I am trying to do:
I have a datagroup called payment_resp_1
When I receive a request I want to match it to the URIs in the datagroup, modify it, and then forward it to a specific member in a pool.
Here is the contents of the datagroup:
/paymentresponse1.jsf
/paymenterror1.jsf
/paymentsuccess1.jsf
So if the HTTP request comes in as http://192.168.1.2:434/paymentresponse1.jsf I would like to modify it to /CSU/paymentresponse.jsf and forward it to a specific member in the pool, say for example 10.48.52.58.
and if it came in as http://192.168.1.2:434/paymenterror1.jsf I would like to modify it to /CSU/paymenterror.jsf and forward it the same way.
Here is an iRule that I wrote to start off. Can someone please take a look at it and let me know if I am in the right track and if possible supply a better solution.
when HTTP_REQUEST {
if {[matchclass [HTTP::uri] equals $::payment_resp_1]} {
HTTP::uri "/CSU/paymentresponse.jsf"
pool payment_resp member 10.48.52.58 8080
}
}
Thanks in advance
- Born_7758NimbostratusI tried playing with this a bit to include three datagroups and 3 pool members. When I try to click Update I get this message:
- Colin_Walker_12Historic F5 AccountMake sure you're checking for $uri, not for $line.
- hooleylistCirrostratusIf you have a different destination for each URI, you could use the original example I posted and a single datagroup:
when HTTP_REQUEST { set line [findclass [HTTP::path] $::uri_class] if {$line ne ""}{ HTTP::uri [lindex $line 0] pool payment_resp member [lindex $line 1] [lindex $line 2] } }
- Born_7758NimbostratusAlright I got it to work!
Recent Discussions
Related Content
* 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