Joe_Pipitone
Apr 07, 2010Nimbostratus
Combining various iRules
I have an interesting issue - I saw in the F5 traffic logs that an iRule was triggering an error - and I believe the problem is because I have 5 iRules applied to a virtual server, all of which do different things - the one thing they all have in common is their HTTP::redirect. From what I've read on the forums, having multiple instances of HTTP::redirect will trigger the error.
The error is:
TCL error: my-rewrite HTTP_REQUEST - Operation not supported. Multiple redirect/respond invocations not allowed line 2 invoked from within HTTP::redirect http://oursite.com[HTTP::uri] default arm line 1 invoked from within switch -glob [HTTP::host] { / { HTTP::redirect http://oursite.com } default { HTTP::redirect http://oursite.com[HTTP::uri]...
I've tried my hardest to combine multiple iRules which mostly consist inside of a switch statement. Here's the current iRule:
when HTTP_REQUEST {
switch [string tolower [HTTP::uri]] {
"/login/default-login.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/forms/buy.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/forms/changeform.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/forms/registrationform.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/forms/changepassword.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/forms/renewform.aspx" {
HTTP::redirect "https://oursite.com[HTTP::uri]"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2493" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2494" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2495" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2496" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2497" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2498" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2499" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2500" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2501" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2502" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2503" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignstart.aspx?campaignid=2504" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
"/redirects/marketing/campaignfinish.aspx?campaigngroupid=17" {
HTTP::redirect "http://subdomain.oursite.com/events/las-vegas-world-conference-2010/home.aspx"
}
}
}
What I am having trouble with is incorporating the following iRules into the master iRule:
switch [string tolower [HTTP::path]] {
"/info.aspx" {
HTTP::redirect "http://info.anothersite.com/default.aspx?[HTTP::query]"
}
And
if {[HTTP::uri] starts_with "/admin" } {
HTTP::redirect "http://legacy.oursite.com[HTTP::uri]"
}
Can anyone help?