Forum Discussion
IRule for redirect based on url
I am trying to do a irule redirect for urls. I am trying to trick something for a DR situation. I have a redirect service that is off campus. So for my DR situation I have a closed off network. I trick the DNS with a dns translation on my firewall and point the three different hosts to the same IP on the F5. I created a VIP on that IP and am trying to write and IRule that will redirect based on the URL you think you came from.
So if I goto the dns redirects me to 1.1.1.1 on my F5 I want to redirect that to which is here one of the urls is vip-joe. I wanted to do an if else rewrite but couldn't get it to work. Tried if { [http::host] contains "darmap"} with a redirect. Really lost and tired. Any help would be greatly appreciated. Thanks Joe
- P_KAltostratus
Can you post your iRule? Mask any confidential info.
- RaghavendraSYAltostratus
I also want to verify irule.Please post your irule
- sundogbrewAltocumulus
I tried three things...
when HTTP_REQUEST { if { [http::host] contains "*bla*"}{ HTTP::redirect "https://www.bla.com" } elseif { [HTTP::uri] contains "*zip*"}{ HTTP::redirect "https://www.zip.com" } elseif { [HTTP::uri] equals "*stuff*"}{ HTTP::redirect "https://stuff.com" } else { pool PFA_NodePool_All } }
SEcond try
when HTTP_REQUEST { switch -glob [HTTP::path] { "vip-bla*" { HTTP::redirect "https://newbla.com" } "bla*" { HTTP::redirect "https://newbla.com" } "zip*" { HTTP::redirect "https://newzip.com" } "zip*" { HTTP::redirect "https://newzip.com" } "stuff*" { HTTP::redirect "https://newstuff.com" } default {HTTP::redirect "https://otherstuff.com"} } }
Third try...
when HTTP_REQUEST { switch -glob [HTTP::uri]{ "if { [HTTP::uri]contains"*bla*"}{ HTTP::redirect "https://bla.com" } "elseif { [HTTP::uri]contains"*vip-bla*"}{ HTTP::redirect "https://bla.com" } "elseif{ [HTTP::uri]contains"*zip*"}{ HTTP::redirect "https://zip.com" } else {HTTP::redirect "https://otherstuff.com"} } }
At the end I tried to shorten it to see if I could get anything to work, the last one won't build so there is a syntax error. If you couldn't tell already my IRule building starts with devcentral search and try to fit it to what I am doing. Thanks Joe
- Jad_Tabbara__J1Cirrostratus
Just to correct your irules :
First
when HTTP_REQUEST { if { [string tolower [HTTP::host]] contains "bla"}{ HTTP::redirect "https://www.bla.com" } elseif { [string tolower [HTTP::uri]] contains "zip"}{ HTTP::redirect "https://www.zip.com" } elseif { [string tolower [HTTP::uri]] equals "stuff"}{ HTTP::redirect "https://stuff.com" } else { pool PFA_NodePool_All } }
- mdsaudNimbostratus
Hi,
Can you help me on this to redirect the path:
https://mcconxvip001.ucsfmedicalcenter.org:81/files/ADM/index.htmlRun below iRule but not working.
if { [HTTP::uri] equals "/"}
{
HTTP::redirect "https://[HTTP::host]/files/ADM/index.html"
}
}
- sundogbrewAltocumulus
Hey guys, Thanks so much for your help. The test ended on Friday and I was off yesterday. Unfortunately it ended before I was able to get this working. I was working on a lot of other problems so this could not be my main focus. But I have a base to start with for next test. I think with logging enabled I would be able to find the problem and resolve it.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com