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.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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
