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.