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

IRULE FOR HTTP to HTTPS REDIRECTION FOR ALL TRAFFIC EXPECT SOME URI

dolly_pandit
Nimbostratus
Nimbostratus

HI Everyone,

 

I am looking for an irule where i need to redirect all the traffic from http to https expect for some URI's.

example: URI's: /abc , /bbc, /xyz anything starting with URI's traffic shouldn't be redirected.

 

Irule i wrote for working only for one URI but not for multiple , can some one help me how the irule looks for multiplr URI?

 

when HTTP_REQUEST {

    if {not ([string tolower [HTTP::path]] starts_with "/abc")}{

        HTTP::redirect "https://[HTTP::host][HTTP::uri]"

     

}

}

1 ACCEPTED SOLUTION

cjunior
Nacreous
Nacreous

Hello,

What about use "switch" ?

https://www.tcl.tk/man/tcl8.7/TclCmd/switch.htm

e.g.

when HTTP_REQUEST {
    switch -glob [string tolower [HTTP::path]] {
        "/abc*" -
        "/bbc*" -
        "/xyz*" {
            # do nothing
        }
        default {
            HTTP::redirect "https://[HTTP::host][HTTP::uri]"
        }
    }
}

Regards

View solution in original post

2 REPLIES 2

cjunior
Nacreous
Nacreous

Hello,

What about use "switch" ?

https://www.tcl.tk/man/tcl8.7/TclCmd/switch.htm

e.g.

when HTTP_REQUEST {
    switch -glob [string tolower [HTTP::path]] {
        "/abc*" -
        "/bbc*" -
        "/xyz*" {
            # do nothing
        }
        default {
            HTTP::redirect "https://[HTTP::host][HTTP::uri]"
        }
    }
}

Regards

dolly_pandit
Nimbostratus
Nimbostratus

Thanks a lot for the suggestion   , it works.