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

iRule's avatar
iRule
Icon for Cirrus rankCirrus
Mar 08, 2023
Solved

replace part of URI for specific URL and pass remaining

Dear Community, I need to replace only specific part of  URI i.e "/abc/defg/" with "/uvw/xyz/"  in a URL. All other URLs should not be altered. "/abc/defg/" will appear in the begning of URI For e...
  • Paulius's avatar
    Paulius
    Mar 14, 2023

    iRule It should be the following and any other additions can be added in a similar manner. You might consider speaking with the application team and have them perform the corrections on the server as this should only be done as a last resort in an iRule.

    when CLIENT_ACCEPTED priority 500 {
    
        set DEFAULT_POOL [LB::server pool]
    
    }
    
    when HTTP_REQUEST priority 500 {
    
        if {[string tolower [HTTP::uri]] starts_with "/abc/defg/"} {
            HTTP::uri [string map {"/abc/defg/" "/uvw/xyz/"}[HTTP::uri]]
            pool pool_web
        } elseif {[string tolower [HTTP::uri]] starts_with "/123/456/"} {
            HTTP::uri [string map {"/123/456/" "/78/910/"}[HTTP::uri]]
            pool pool_web
        } elseif{[string tolower [HTTP::uri]] starts_with "/asdf-asdf/"} {
            HTTP::uri [string map {"/asdf-asdf/" "/lkjh-lkjh/"}[HTTP::uri]]
            pool pool_web
        } else {
            pool ${DEFAULT_POOL}
        }
    
    }