heskez_36146
Nov 13, 2013Nimbostratus
Redirection multiple URLS
Hi,
We've two websites www.x.com/GoWest and www.x.com/GoSouth
We'd like an Irule which redirects to:
GoWest -> www.y.com/Gowest and GoSouth -> www.y.com/GoSouth
Therefore We've build an irule:
when HTTP_REQUEST
{
set RequestedPath [string tolower [HTTP::path]]
switch $RequestedPath
{
"/GoWest"
{
HTTP::redirect "https://www.y.com/GoWest"
}
"/GoSouth"
{
HTTP::redirect "https://www.y.com/GoSouth"
}
}
if { $RequestedPath contains "/GoWest" }
{
HTTP::redirect "https://https://www.y.com/GoWest"
}
if { $RequestedPath contains "/GoSouth" }
{
HTTP::redirect "https://https://www.y.com/GoSouth"
}
else
{
HTTP::redirect "https://www.y.com"
TCP::close
}
}
This is not working as expected though, it's always going to West and never to south?
I would just do the switch statment and not the switch and the if statment. The redirects in the if statments should not be https://https. The problem with the switch statment is you are doing a string tolower but then are matching on a string with Caps. It would also be good in troubleshooting to add a log statement showing what you are matching.
when HTTP_REQUEST { set RequestedPath [string tolower [HTTP::path]] log local0. "RequestedPath = $Requestedpath" switch $RequestedPath { "/gowest" { HTTP::redirect "https://www.y.com/GoWest" } "/gosouth" { HTTP::redirect "https://www.y.com/GoSouth" } } }