cancel
Showing results for 
Search instead for 
Did you mean: 

iRule Multiple site redirect

rwagner1
Nimbostratus
Nimbostratus

How do I write an iRule that redirects multiple sites.

Site 1) aaa.com redirects to www.bbb.com/ccc/ddd

Site 2) eee.com redirects to www.bbb.com/fff

Site 3) ggg.com redirects to www.bbb.com/hhh

 

I thought it should look like this but it's not right.

 

when HTTP_REQUEST {

 if { [string tolower [HTTP::host]] contains "aaa.com" } {

  HTTP::header replace "Host" "www.bbb.com"

  HTTP::uri "/ccc/ddd[HTTP::uri]"

 } {

 if { [string tolower [HTTP::host]] contains "eee.com" } {

  HTTP::header replace "Host" "www.bbb.com"

  HTTP::uri "/fff[HTTP::uri]"

 } {

 if { [string tolower [HTTP::host]] contains "ggg.com" } {

  HTTP::header replace "Host" "www.bbb.com"

  HTTP::uri "/hhh[HTTP::uri]"

}

1 REPLY 1

Hi rwagner1,

 

If you want to change url in browser:

when HTTP_REQUEST { switch [HTTP::host] { "aaa.com" { HTTP::redirect "http(s)://www.bbb.com/ccc/ddd" } "eee.com" { HTTP::redirect "http(s)://www.bbb.com/fff" } "ggg.com" { HTTP::redirect "http(s)://www.bbb.com/hhh" } } }

If you don't want to change url in browser:

  • Create a pool for www.bbb.com.
when HTTP_REQUEST { switch [HTTP::host] { "aaa.com" { HTTP::header replace "Host" "www.bbb.com" HTTP::uri "/ccc/ddd" pool pool_www.bbb.com } "eee.com" { HTTP::header replace "Host" "www.bbb.com" HTTP::uri "/fff" pool pool_www.bbb.com } "ggg.com" { HTTP::header replace "Host" "www.bbb.com" HTTP::uri "/hhh" pool pool_www.bbb.com } } }