Forum Discussion

David_Stephenso's avatar
Icon for Nimbostratus rankNimbostratus
Jun 13, 2012

Problems with a rewrite. Please help

Hi, I've been asked to write an irule that will intercept anything with a uri that begins with /upload and remove the /upload.


Also, the rule needs to rewrite the host from whatever it is to be the hostname of the server in the pool that it gets served by and to also have :8080 added to it.



to be rewritten to







So far I have come up with this:






set origuri [HTTP::uri]


if { $origuri starts_with "/upload" } {


HTTP::uri [string range $origuri 7 end]


pool pool1









which I thought would at least remove the /upload part of the URI but it doesn't seem to.




Any help is greatly appreciated.







1 Reply

  • Hi David,

    Here's an example which rewrites the host header value based on the selected server IP address:

    You could modify that to change the URI as you need to. In pre-v11, the [HTTP::uri] value is cached within the same event. The actual value sent to the pool is updated though. If you want to log the updated value, you can do this in a later HTTP_REQUEST event:

    when HTTP_REQUEST {
       log local0. "[IP::client_addr]:[TCP::client_port]: Original request: [HTTP::host][HTTP::uri]"
       if { [HTTP::uri] starts_with "/upload" } {
          HTTP::uri [string range [HTTP::uri] 7 end]
          pool pool1
    when HTTP_REQUEST priority 501 {
       log local0. "[IP::client_addr]:[TCP::client_port]: Current request: [HTTP::host][HTTP::uri]"