Forum Discussion
Need help with iRule based on host and path
- Jul 11, 2024
Finally, problem solved! The reason was the order of execution for the 2 scripts. I donot really understand why this happens but when I placed the script in second place, everything is executed as expected. If you have any ideas please let me know.
The problematic order which doesnot work is shown below:
First script:
when HTTP_REQUEST {
if { [HTTP::host] equals "hostname_a"} {
if { [HTTP::path] equals "/path" } {pool pool_a
log local0. "URL : [HTTP::host][HTTP::uri] entered"
}
}
if { [HTTP::host] equals "hostname_b"} {
if { [HTTP::path] equals "/path" } {pool pool_b
log local0. "URL : [HTTP::host][HTTP::uri] entered"
}
}
}Second script:
when HTTP_REQUEST {
if {[HTTP::has_responded]}{return}
switch -glob [string tolower [HTTP::path]]
{....
....
}
default
{
switch [string tolower [HTTP::host]]
{"hostname_a"
{
pool pool_c
persist none}
....
.....
default
{
pool_z
}
......
Anyway, thank you all very much for your time.
"equals" means exact match.
maybe what you need is starts_with.
https://clouddocs.f5.com/api/irules/starts_with.html
for testing, you can install virtualedition with trial license or create test vserver
Thank you for your suggestion but there is no change.
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