Forum Discussion
Deon
Nimbostratus
Jun 13, 2008How to change the uri in a request?
Hi. I am a brand new to writing iRules here and this seems like it should be easy but I can't see what my problem is. I am trying to rewrite the uri and remove a path before I send the request along to a different than default pool for this virtual server. I will also need to be changing the header but have not gotten that far yet.
Here is my rule so far:
when HTTP_REQUEST {
if { [HTTP::uri] starts_with "/ImageMetaData/" }{
log local0. "matched string"
log local0. "host= [HTTP::host]"
log local0. "uribefore= [HTTP::uri]"
HTTP::uri "substr [HTTP::uri] 14"
HTTP::uri "/blahblahblah"
log local0. "uriafter= [HTTP::uri]"
pool DEV_Image_Access_Service
}
}
I was not able to get the uri reassignment to happen on the line with the substr. I then decided to just specify a value "/blahblahblah". To my dismay I appear to not be able to assign a value to HTTP::uri. The log file is showing me...
Jun 13 15:44:08 tmm tmm[864]: Rule Image_Access_Rewrite : matched string
Jun 13 15:44:08 tmm tmm[864]: Rule Image_Access_Rewrite : host= dev.systemx.mycompany.net
Jun 13 15:44:08 tmm tmm[864]: Rule Image_Access_Rewrite : uribefore= /ImageMetaData/authenticate?appId=spectrum
Jun 13 15:44:08 tmm tmm[864]: Rule Image_Access_Rewrite : uriafter= /ImageMetaData/authenticate?appId=spectrum
Thanks
-deon
1 Reply
Sort By
- Have you tested from the backend server whether your change has been made? The value of [HTTP::uri] is cached for optimization and is not re-written when you assign a new value with [HTTP::uri new-value]. Odds are if you checked your application receiving the request, the URI is "/blahblahblah".
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