Forum Discussion
iRule exclude URI
- Nov 23, 2022
To negate starts_with I would use the not operator:
https://clouddocs.f5.com/api/irules/not.html
when HTTP_REQUEST { if { not ([HTTP::uri] starts_with "/abc") } { # do something ... } else { # do something else... } }
For excluding the exact path, you can go with the "ne" operator
Hello, if you're looking to exclude an exact match for a string, "ne" operator can be used as well.
One thing I noticed -- since this is an exact match, be careful with "string tolower" syntax as it will convert everything to lowercase, so you will never see Web123 -- it's gonna be web123 instead.
I generally don't recommend converting paths to lowercase since it is case sensitive, try using this instead:
if { [HTTP::path] ne "/abc/Web123/cde/forum123" }{ ... }
Thank you all for responding to my post. I have another question.
What would be right syntax if I need to use 2 URLs?
if { [HTTP::path] ne "/abc/Web123/cde/forum123" OR "/abc/Web123/cde/forum456"
Is the "OR" correct operator?
Thank you!
- Amine_KadimiNov 24, 2022MVP
For the requested logic, you need the "and" operator between two tests:
if { ([HTTP::path] ne "/abc/Web123/cde/forum123") and ([HTTP::path] ne "/abc/Web123/cde/forum456") }
If you plan to add more paths in the future, then consider using a switch test
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