For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

ervinc_27883's avatar
ervinc_27883
Icon for Nimbostratus rankNimbostratus
Sep 24, 2014

multiple urls to single url

I want to redirect users to a single url (http://a.b.com/a/error.htm) if they came from (http://a.b.com/a/a.aspx?a=1 or http://a.b.com/a/h.aspx?a=f or http://a.b.com/b/4.aspx?a=3)

 

any help will be great. thank you,

 

8 Replies

  • I would use a switch statement based on the variable you're passing in, like this:

     

    switch [URI::query [HTTP::uri] "a"] { 1 { HTTP::redirect http://a.b.com/a/error.htm } f { HTTP::redirect http://a.b.com/a/error.htm } 3 { HTTP::redirect http://a.b.com/a/error.htm } }

     

    mainly for the flexibility of redirecting elsewhere in future, but you could use an if statement containing all options, a datagroup containing all elements you want to redirect on and I'm sure a few other options.

     

    • ervinc_27883's avatar
      ervinc_27883
      Icon for Nimbostratus rankNimbostratus
      I'm new to the irule game, how would you code this? will this work? when HTTP_REQUEST { switch [URI::query [HTTP::uri] = "http://a.b.com/a/a.aspx?a=1" or http://a.b.com/h/h.aspx?g=5 or http://a.b.com/h/h.aspx?g=10 or http://a.b.com/f/u.aspx?g=8 ] { HTTP::redirect http://a.b.com/a/error.htm } }
  • Getting an error when I put this irule: when HTTP_REQUEST { if { ([HTTP::host] equals "a.b.org") and ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=986") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=986") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1014") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1014") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1017") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1017") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1015") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1015") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1016") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1016") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1018") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1018") or ([HTTP::uri] equals MessageWebSite/Messages.aspx?contractID=1013") or ([HTTP::uri] equals MessageWebSite/MessageBoardLogin.aspx?contractID=1013") } { HTTP::redirect "https://[HTTP::host][HTTP::uri]" } }

     

  • This also give me error

     

    when HTTP_REQUEST { if { ([HTTP::host] equals "a.b.org") and (([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=986") or (HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=986") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1014") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1014") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1017") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1017") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1015") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1015") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1016") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1016") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1018") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1018") or ([HTTP::uri] equals "MessageWebSite/Messages.aspx?contractID=1013") or ([HTTP::uri] equals "MessageWebSite/MessageBoardLogin.aspx?contractID=1013") }} { HTTP::redirect "http://a.b.org/abc/eror.html" } }

     

  • shaggy's avatar
    shaggy
    Icon for Nimbostratus rankNimbostratus

    HTTP::uri will match the entire uri (path + query). Try:

    when HTTP_REQUEST {
        if { [string tolower [HTTP::uri]] equals "/a/a.aspx?a=1" or [string tolower [HTTP::uri]] equals "/a/h.aspx?a=f" or [string tolower [HTTP::uri]] equals "/b/4.aspx?a=3" }{
            HTTP::redirect http://a.b.com/a/error.htm
        }
    }
    
  • I tried this and the redirect is still not working.

     

    when HTTP_REQUEST { if { [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=986" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1014" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1017" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1015" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1016" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1018" or [string tolower [HTTP::uri]] equals "/MessageWebSite/Messages.aspx?contractID=1013" } { HTTP::redirect "http://apps.mwrd.org/MessageWebSite/Questions_Unavailable.htm" } }