Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

Redirect for URL and URI in one Irule

isavic
Nimbostratus
Nimbostratus

I need to redirect one url called usparks.something.ca to https://something.ca/attractions.php and at same time usparks.something.ca/fr to https://something.ca/fr/attractions.php. My Irule looks like this:

when HTTP_REQUEST {

 

       if { [HTTP::host] equals "usparks.something.ca"} {

           HTTP::redirect "https://something.ca/attractions.php"

           #return

       }

       elseif {([string tolower [HTTP::uri]] equals "/fr") } {

   HTTP::redirect "https://something.ca/fr/attractions.php"

[HTTP::uri]

 }

}

 

But for some reason usparks.something.ca/fr still redirects to https://something.ca/attractions.php not https://something.ca/fr/attractions.php.

Please advise.

Thanks,

Igor

 

2 REPLIES 2

Hi Igor,

You should add HTTP::uri equals "/" comparison. If not add, always "if statement" will run.

when HTTP_REQUEST {
	if { [HTTP::host] equals "usparks.something.ca" } {
		if { [HTTP::uri] equals "/" } {
			HTTP::redirect "https://something.ca/attractions.php"
		}
		elseif { [string tolower [HTTP::uri]] equals "/fr" } {
			HTTP::redirect "https://something.ca/fr/attractions.php"
		}
	}
}

or

when HTTP_REQUEST {
	if { [HTTP::host] equals "usparks.something.ca" } {
		switch [string tolower [HTTP::uri]] {
			"/" { HTTP::redirect "https://something.ca/attractions.php" }
			"/fr" { HTTP::redirect "https://something.ca/fr/attractions.php" }
		}
	}
}

isavic
Nimbostratus
Nimbostratus

Thanks a lot it worked.

Igor