Forum Discussion

7 Replies

  • use this irule.

                    when HTTP_REQUEST {
                        if { [string tolower [HTTP::uri]] starts_with "/uri1*" } {
                             pool pool_X
                                 }      
                         }
    
    • Samir_Jha_52506's avatar
      Samir_Jha_52506
      Icon for Noctilucent rankNoctilucent
      Hope it will work.. try this. when HTTP_REQUEST { if { [string tolower [HTTP::host]] equals "host1.internet.com" and [string tolower [HTTP::host]] starts_with "/uri*" } { pool pool_x } }
  • Hi, Samir. This appers to be a straight URI redirect to a pool. I am looking to also match the source of the request to a specific host, host1.internet.com. Thank you for your help. Vadim.

     

  • try this...

    when HTTP_REQUEST {
      if { [string tolower [HTTP::host]] equals "host1.internet.com" } {
        if { [string tolower [HTTP::uri]] starts_with "/uri1" } {
          pool pool_X
        } 
      }     
    }
    
  • Hi,

     

    if you are using version 11.4 or above, you can configure Local traffic policy instead of irule.

     

    • Policy
      • require http
      • controls forwarding
    • Rule 1 :
      • Condition
        • http-host host equals host1.internet.com
        • http-uri path starts_with /uri1
      • Action forward pool Pool_X
  • Arpydays, Entered your rule, and it passed F5 mustard. Will test in the morning but certainly makes sense and should work. Thank you very much.

     

    Stanislas, I am running a BigIP version 10.2.4. Thank you as well.

     

    Vadim.

     

  • Hi,

    in the irule, create a else statement with default pool assignment. if there is no default pool assignment, and the user browse first to /uri1 then to /uri2 in the same TCP connection, the second request will be assigned to the previous pool.

    When CLIENT_ACCEPTED {
        set default_pool [LB::server pool]
    }
    
    when HTTP_REQUEST {
      if { [string tolower [HTTP::host]] equals "host1.internet.com" } {
        if { [string tolower [HTTP::uri]] starts_with "/uri1" } {
          pool pool_X
        } else { pool $default_pool}
      }     
    }