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

soymanue's avatar
soymanue
Icon for Nimbostratus rankNimbostratus
Apr 20, 2013

Regexp question

I want to build and iRule witch "SWITCH" command to make an URI based redirection.

 

If we have http://www.mydomain.com/URI y would need to redirect this way

 

 

if URI is "/marketing" or "/marketing/" -> Redirection 1

 

 

if URI is "/accounting" or "/accounting/" -> Redirection 2

 

 

if URI is "/humanresources" or "/humanresources/" -> Redirection 2

 

 

How would you check with regexp if a string is client1, client1/ . Something like client1[ "/ ", ]

 

Even better How would you check this:

 

"/MARKETING"

 

"/MARKETING/"

 

"/MARKETING/EN"

 

"/MARKETING/EN/"

 

"/HUMANRESURCES"

 

"/HUMANRESURCES/"

 

""/HUMANRESURCES/EN"

 

"/HUMANRESURCES/EN/"

 

I was thinking abut inserting a final "/" if the string doesn'f end with one.

 

 

3 Replies

  • You don't even need a regex for something like this. Just use the -glob option of the switch command:

    
    switch -glob [string tolower [HTTP::uri]] {
         "/marketing*" { pool marketing_pool }
         "/accounting*" { pool accounting_pool }
         "/humanresources*" { pool hr_pool }
         default { pool default_pool }
    }
    

  • Hi

     

    Thanks for your help but it's a bit more complicated:

     

    Department => 16 different values

     

    Language => 4 different values

     

    /Department -> /marketing/es/particulares/

     

    /Department/ -> /marketing/es/particulares/

     

    /Department/Language > > /marketing/en/particulares/

     

    /Department/Language/ -> /marketing/en/particulares/

     

    /Department/Language/ -> no reditection

     

     

    marketing/sp/
  • I think the switch -glob would still probably work, as long as you search from most specific to least specific.

     

     

    /department/language/

     

    /department/language

     

    /department/

     

    /department

     

    /