Forum Discussion

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

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}
        }
    
    }