Forum Discussion

F5workuserguy's avatar
F5workuserguy
Icon for Altostratus rankAltostratus
Aug 30, 2023

set TOKEN [getfield [HTTP::uri]

I have two rules that work on there own, not sure how to combine them into one.

 

when HTTP_REQUEST {
set HOST [string tolower [HTTP::host]]
set TOKEN [getfield [HTTP::uri] "/?r=" 2]
HTTP::respond 302 Location "https://www2.google.com/gui/reloan/getstarted?code=$TOKEN" Connection Close
}

when HTTP_REQUEST {
set HOST [string tolower [HTTP::host]]
set TOKEN [getfield [HTTP::uri] "/" 2]
HTTP::respond 302 Location "https://www1.google.com/ShortUrlLanding/?lmco=$TOKEN" Connection Close
}

 

  • Paulius's avatar
    Paulius
    Sep 01, 2023

    F5workuserguy I'm not understanding the tinyURL piece because I was under the impression that the tinyURL service is what mapped to your URL for you and then you receive the full intended request. Can you provide an example of what each request would look like when it arrives to your F5 so we can formulate an iRule that will handle the request? For now you might try the following and see if that works for your purposes. I removed you creation of the HOST variable because you were not using it so it isn't necessary.

    when HTTP_REQUEST priority 500 {
    
        if { [HTTP::uri] contains "/?r=" } {
            set TOKEN [getfield [HTTP::uri] "/?r=" 2]
            HTTP::respond 302 Location "https://www2.google.com/gui/reloan/getstarted?code=${TOKEN}" Connection Close
        } else {
            set TOKEN [getfield [HTTP::uri] "/" 2]
            HTTP::respond 302 Location "https://www1.google.com/ShortUrlLanding/?lmco=${TOKEN}" Connection Close
        }
    
    }

     

  • I first setup the "/" for tinyURL redirection, but was just informed they want to send a new tinyURL with "/?r=" anyways in front of the URI string.

      • F5workuserguy's avatar
        F5workuserguy
        Icon for Altostratus rankAltostratus

        they are still going to have both rolling in that need to get redirected.  I was hoping to get something for catching "/?r="  first, then the default "/" for the rest.