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

atoth's avatar
atoth
Icon for Cirrus rankCirrus
Aug 14, 2020
Solved

Checking if a value exists in a data-group?

I've got an irule which doing 301 redirects. When a particular uri comes in, it checks the locale and matches it against a data-group with old locale in the uri being mapped to a new local.

 

For example "en_US" would map to "en-us" as the new value. It works fine for the most part, but if the locale that comes doesn't match a particular value in the data-group, it leaves the locale field blank in the 301 redirect. If the locale field in the uri contained something like /locale=en_ZZ, the redirect would just blank in the redirect.

 

Instead, we want it to redirect to a default page, and I'm not quite sure how to do that. First in the class match statement it would need to check if a matching value existed, but I'm not sure how to do that, and the class page on devcentral is a little confusing.

  • Hello atoth.

    Make the most of the command 'else':

    when HTTP_REQUEST {
    	if { [class match [HTTP::uri] equals "location_dg" ] } {
    		## DO YOUR STUFF
    	} else {
    		## DO YOUR STUFF IN CASE OF NOT MATCHING
    	}
    }

    Regards,

    Dario.

3 Replies

  • Hello atoth.

    Make the most of the command 'else':

    when HTTP_REQUEST {
    	if { [class match [HTTP::uri] equals "location_dg" ] } {
    		## DO YOUR STUFF
    	} else {
    		## DO YOUR STUFF IN CASE OF NOT MATCHING
    	}
    }

    Regards,

    Dario.