Forum Discussion
iRule Question
Hi everyone, this is my first time using Data Group lists and I'm having some trouble with the below iRule. Does anyone have any suggestions on what I might be doing wrong?
Also a summary as to what the iRule is doing. Basically if you are trying to go a URI other than one on the "approved" data group list, you get redirected back to the root level of the site.
when HTTP_REQUEST {
if { [[HTTP::uri] starts_with a_string] } {
pool some_pool
}
else { HTTP::redirect "https://somedomain.com/" }
}
This should do the trick. Just make sure your DG is a string list and your /URIs go in the string field.
when HTTP_REQUEST { if { [class match [HTTP::uri] starts_with "/Common/"] } { pool some_pool } else { HTTP::redirect "https://somedomain.com/" } }
- natheCirrocumulus
Brad, you'll need to use the class command to reference the data group.
See the following wiki for examples, specifically using "class match"
https://devcentral.f5.com/wiki/irules.class.ashx
N
- Brad_Parker_139Nacreous
This should do the trick. Just make sure your DG is a string list and your /URIs go in the string field.
when HTTP_REQUEST { if { [class match [HTTP::uri] starts_with "/Common/"] } { pool some_pool } else { HTTP::redirect "https://somedomain.com/" } }
- Brad_Parker_139Nacreousprobably want to [string tolower [HTTP::uri]] to make sure your matching is all lower case.
- Brad_146558NimbostratusUnfortunately it still seems like it isn't matching against the datagroup and forwarding all URIs on to the pool.
- Brad_Parker_139NacreousRemoved the erroneous extra } from the rule above.
- Brad_ParkerCirrus
This should do the trick. Just make sure your DG is a string list and your /URIs go in the string field.
when HTTP_REQUEST { if { [class match [HTTP::uri] starts_with "/Common/"] } { pool some_pool } else { HTTP::redirect "https://somedomain.com/" } }
- Brad_ParkerCirrusprobably want to [string tolower [HTTP::uri]] to make sure your matching is all lower case.
- Brad_146558NimbostratusUnfortunately it still seems like it isn't matching against the datagroup and forwarding all URIs on to the pool.
- Brad_ParkerCirrusRemoved the erroneous extra } from the rule above.
- natheCirrocumulus
Brad - looks like the iRule above has too many } but it would error when creating the irule so can i assume you've removed one of these.
Anyway, what does your DG look like. I tested the irule above with the following DG and it worked just as Brad Parker suggested.
Here's my DG
ltm data-group internal uri_allowed { records { /test { } } type string
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