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

adminas's avatar
adminas
Icon for Altocumulus rankAltocumulus
Jul 10, 2024
Solved

Need help with iRule based on host and path

Hello all. I am trying to create an iRule that will choose a specific pool based on host and path. I tried the following code: when HTTP_REQUEST {   if { [HTTP::host] equals "hostname_a"} {     i...
  • adminas's avatar
    Jul 11, 2024

    Finally, problem solved! The reason was the order of execution for the 2 scripts. I donot really understand why this happens but when I placed the script in second place, everything is executed as expected. If you have any ideas please let me know.

    The problematic order which doesnot work is shown below:

    First script:

    when HTTP_REQUEST {
      if { [HTTP::host] equals "hostname_a"} {
        if { [HTTP::path] equals "/path" } {

          pool pool_a
            log local0. "URL : [HTTP::host][HTTP::uri] entered"
        }
      }
      if { [HTTP::host] equals "hostname_b"} {
        if { [HTTP::path] equals "/path" } {

            pool pool_b
            log local0. "URL : [HTTP::host][HTTP::uri] entered"
        }
      } 
    }

     

    Second script:

    when HTTP_REQUEST {
    if {[HTTP::has_responded]}{return}
        switch -glob [string tolower [HTTP::path]]
        {

    ....

    ....

        }

        default
        {
                switch [string tolower [HTTP::host]]
                {

                     "hostname_a"

                     {

                       pool pool_c
                       persist none

                      }

    ....

    .....

                      default

                       {

                             pool_z

                       }

    ......

    Anyway, thank you all very much for your time.