Forum Discussion

Sabeer_Ali_2389's avatar
Sabeer_Ali_2389
Icon for Altostratus rankAltostratus
Dec 10, 2015

iRule - http to https permanent redirection : respond code 301

Currently we are using the F5 inbuilt iRule - _sys_https_redirect , we need a permanent redirection (respond code 301) . can I use belwo iRule ?

 

when HTTP_REQUEST { HTTP::respond 301 HTTP::redirect https://[getfield [HTTP::host] ":" 1][HTTP::uri] }

 

6 Replies

  • Hi,

    the irule must be:

    when HTTP_REQUEST { 
        HTTP::respond 301 Location https://[getfield [HTTP::host] ":" 1][HTTP::uri] 
    }
    
  • Hi Stanislas,

     

    I have tried it , redirection is happening but still the respond code is 302

     

  • I tried the same irule and it is my result:

    $ curl http://abc.company.com -vv
    * Rebuilt URL to: http://abc.company.com/
    *   Trying 2a02:aaaa:bbbb:cccc:f5::4...
    * Connected to abc.company.com (2a02:aaaa:bbbb:cccc:f5::4) port 80 (0)
    > GET / HTTP/1.1
    > Host: abc.company.com
    > User-Agent: curl/7.43.0
    > Accept: */*
    > 
    * HTTP 1.0, assume close after body
    < HTTP/1.0 301 Moved Permanently
    < Location: https://abc.company.com/
    < Server: BigIP
    * HTTP/1.0 connection set to keep alive!
    < Connection: Keep-Alive
    < Content-Length: 0
    < 
    * Connection 0 to host abc.company.com left intact
    

    Did you flush your browser cache?

  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    HTTP 302 should not be cached by the client.

    However, I would recommend using something like cURL for testing rather than a browser since it eliminates optimizations and most caching.

    curl -I "http://www.domain.com/"
    

    The flag

    -I
    instructs
    cURL
    to do a
    HEAD
    request, which makes it much easier to review the results. Keep in mind that
    HEAD
    sometimes returns a different response than
    GET
    .