Forum Discussion
Policy action getting overwrote by irule
- May 08, 2019
I found the solution. You can find if a pool is already selected.
[LB::server pool] will give you the name of the pool selected (or nothing) for example: /Common/example-com-pool
So the solution in my case to avoid the default case to overwrite what my policy did.
default { if { ! ([LB::server pool] starts_with "/Common/") } { log local0. "DEBUG – pool not selected" HTTP::respond 301 Location "https://[HTTP::host][HTTP::uri]" } }
NB: For the random googler coming accros this question you can also catch if a redirect was already performed (by your policy) with this ([catch {HTTP::payload replace 0 0 {}}])
When working with policies and irules, all policies / irules are executed for the same event before action is really applied...
If you assign a policy and an irule to the virtual server, policy code execute first but does not prevent irule execution...
If you don’t want the irule execute, create a tcl variable in policy with value 1 then check if this variable value is 1 in irule...
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