cancel
Showing results for 
Search instead for 
Did you mean: 

iRule Help - if specific URL, redirect, else display a maintenance page

nkroon1
Cirrus
Cirrus

Hello! I currently have a working maintenance page, however the customer wants it if you go to a specific URL, you get redirected, else you get the page.

 

Currently, I have been doing redirects for a bunch of URL's in the following way...

 

when HTTP_REQUEST { set httppath [string tolower [HTTP::host][HTTP::uri]] switch -glob $httppath { "*example.com*" { HTTP::redirect https://[string map {"example" "example.new.com"} $httppath] } } } }

 

That irule has been working and have no issues. However, now we are trying to introduce a maintenance page. They want it to be where if you go to a specific site, you redirect, else everything hits the page. I've tried adding the following, but get syntax errors...

 

when HTTP_REQUEST { if {set httppath [string tolower [HTTP::host][HTTP::uri]] switch -glob $httppath { "*example.com*" { HTTP::redirect https://[string map {"example" "example.new.com"} $httppath] } else { {HTTP::respond 200 content [ifile get "page.html"] } } }

 

I've tried a few other iterations, however i'm stumped at this point and looking for help.

1 ACCEPTED SOLUTION

PeteWhite
F5 Employee
F5 Employee
when HTTP_REQUEST { switch -glob -- [string tolower [HTTP::host][HTTP::uri]] { "*example.com*" { HTTP::redirect https://example.new.com[HTTP::uri] } default { HTTP::respond 200 content [ifile get "page.html"] } } }

 

View solution in original post

4 REPLIES 4

PeteWhite
F5 Employee
F5 Employee
when HTTP_REQUEST { switch -glob -- [string tolower [HTTP::host][HTTP::uri]] { "*example.com*" { HTTP::redirect https://example.new.com[HTTP::uri] } default { HTTP::respond 200 content [ifile get "page.html"] } } }

 

nkroon1
Cirrus
Cirrus

Thank you sir! That worked perfectly!

Great!!

Mrwillbaclimon
Altocumulus
Altocumulus