Forum Discussion
Irule Match
hello - i have been trying to understand the condition match that happens in irules in the example below -- if the URI -is /foobar would it not match the first case and exit - Thanks switch -glob [HTTP::uri] { "/foo" { this will match on any string that starts with "/foo" } "bar" { this will match on any string that ends with "bar" } "/foobar[a-zA-Z]" { This will match with any string that starts with "/foobar" followed by any case character from a-z. } "/foo?bar" { this will match any string that starts with "/foo", followed by any character, and followed by and ending with "bar". } }
- MAbbas
Cirrus
switch -glob [HTTP::uri] { "/foo*" { this will match on any string that starts with "/foo" }
"bar" { this will match on any string that ends with "bar" }
"/foobar[a-zA-Z]" { This will match with any string that starts with "/foobar" followed by any case character from a-z. }
"/foo?bar" { this will match any string that starts with "/foo", followed by any character, and followed by and ending with "bar". } }
- Kevin_Stewart
Employee
I'll include the code again for readability (with additional comments):
switch -glob [HTTP::uri] { "/foo*" { this will match on any string that starts with "/foo" } "bar" { this will match on a string that equals "bar". The -glob operator allows you to include regex-like wildcards in the expressions. And since you didn't specify any here, the match is explicit. } "/foobar[a-zA-Z]" { This will match with any string that starts with "/foobar" followed by any case character from a-z. Except that this condition will never be matched as log as the more generic "/foo*" expression is at the top. } "/foo?bar" { this will match any string that starts with "/foo", followed by any character, and followed by and ending with "bar". Except that this condition will never be matched as log as the more generic "/foo*" expression is at the top. } }
Generally speaking, you should always try to put the least specific matches at the bottom of the conditional. With "/foo*" at the top, the bottom two expressions can never be matched.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com