Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

set TOKEN [getfield [HTTP::uri]

F5workuserguy
Altostratus
Altostratus

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
}

 

1 ACCEPTED SOLUTION

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

}

 

View solution in original post

7 REPLIES 7

Paulius
MVP
MVP

@F5workuserguy Will either "/" or "/?r=" always exist? Will the token always be a certain length and character variation?

F5workuserguy
Altostratus
Altostratus

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 If you're changing to "/?r=" then no need to have both running at the same time.

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.

 

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

}

 

so tinyurl is an example, its a different URL

http://url.com/?r=TddzDSDLK2

http://url.com/wGdzD

update, I changed 

contains to starts_with