For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Deon's avatar
Deon
Icon for Nimbostratus rankNimbostratus
Jun 13, 2008

How 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

  • 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".

     

     

    -Joe