Technical Forum
Ask questions. Discover Answers.
Showing results for 
Search instead for 
Did you mean: 

irule uri redirect help


Hi Im looking for help with an irule to achieve the following:


if someone visits or it redirects them to - we have the following irule in place but it doesnt capture the second uri with trailing '/'



 if { ([HTTP::host] equals "") and ([HTTP::path] ends_with "/abc/def") } {





Any help appreciated!


Hi cymru81,


You should use starts_with instead of ends_with.

When using starts_with, /abc/def/x path matches with condition.

If you don't want redirect for /abc/def/x, you can use this iRule:

when HTTP_REQUEST { if { [HTTP::host] equals "" } { switch [HTTP::path] { "/abc/def" - "/abc/def/" { HTTP::redirect } } } }


Hi eaa


Thanks for responding, unfortunately that still doesnt work when changing to starts_with


We still want visitors to be able to navigate to /abc/ but with this irule applied its redirecting them to ?



Only /abc/def and /abc/def/ match this iRule. /abc/ does not match.

could there be something else in my original rule causing this as if i go to it blanket redirects to ?

We always should look at possibilities, to confirm this, I'd suggest to put loggings in the Irule block and see where this redirection is getting triggered.

thanks - how do i add this to my existing rule?

Lets go with your own rule,

when HTTP_REQUEST { if { ([HTTP::host] equals "") and ([HTTP::path] ends_with "/abc/def") } { log local0. "CLIENT=[IP::client_addr] has matched If block, Host=[HTTP::host] and matches Path=[HTTP::path] ends_with" HTTP::redirect log local0. "CLIENT=[IP::client_addr] has been redirected to" } }

You should see the logging in your /var/log/ltm file.