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

f5noob29's avatar
f5noob29
Icon for Altocumulus rankAltocumulus
Jan 21, 2021

301 Redirect but Adding Original URL and Referrer

Old website will be decommissioned and we want users that would access the old site to be redirected but with the original URL be added and a referrer in the header. Can the original URL can be passed as either a HTTP GET parameter or as a HTTP header, but the referrer should stay “hidden” and be passed in a HTTP header?

 

We'd like F5 to put the original URL and the referrer into GET parameters.

 

For example, a user goes to OLD-APP and clicks on help button.

 

OLD-APP: http://old-app.com/URI/query

help link: http://old-app.com-help/URI/query

 

F5 intercepts and returns HTTP 301 with the following headers:

 

Location: https://NEW-APP.com/redirect/?url=http%3A%2F%2Fold-app.com-help%2FURI%2Fquery&referer=http%3A%2F%2Fold-app.com%2FURI%2Fquery

Cache-Control: no-cache, no-store, must-revalidate, max-age=0

 

If there is no Referrer header, then F5 can omit referrer or just use an empty value (i.e. referrer=).

 

We are trying to achieved this via an iRule, I've looked around and found some iRule that could potentially helped but I cant create a specific iRule for this requirements. I'd appreciate your help. TIA.

7 Replies

  • Hi,

    Could you give this a try:

    when HTTP_REQUEST { 
     HTTP::respond 301 Location "https://NEW-APP.com/redirect/?url=http://[HTTP::host][HTTP::uri]" Referer "http://[HTTP::host][HTTP::uri]"
    }

    Cheers,

    Kees

    • f5noob29's avatar
      f5noob29
      Icon for Altocumulus rankAltocumulus

      Thanks Kees.

       

      I got it to work but app owner says that they are seeing below,

       

      Location: https://https://NEW-APP.com/redirect?url=http://old-app.com-help/URI/URI1/URI2/URI3

       

      Instead of this,

       

      Location: https://NEW-APP.com/redirect/?url=http%3A%2F%2Fold-app.com%2FURI%2FURI1%2FURI2%2FURI3

       

      They also want to have a cache-control header

      Cache-Control: no-cache, no-store, must-revalidate, max-age=0

       

      Also the referrer does not seem to work as F5 doesn't include the referrer in the redirect URL.

       

      TIA.

      • Hi TIA,

         

        Can you post the irule here?

        Cache control header is not a request but a response header. So this can not be included in a redirect.

        You need separate code in the irule:

         

        when HTTP_RESPONSE {
           if { [HTTP::header value Content-Type] contains "application/pdf" } {
              HTTP::header replace Pragma public
              HTTP::header replace Cache-Control public
           }
           elseif { [HTTP::header value Content-Type] contains "application/vnd.ms-excel" } {
              HTTP::header replace Pragma public
              HTTP::header replace Cache-Control public
           }
           elseif { [HTTP::header value Content-Type] contains "application/msword" } {
              HTTP::header replace Pragma public
              HTTP::header replace Cache-Control public }
           else {
              return
           }
        }