Capture part of URI and do not redirect.
I am doing redirection for path like this:
/abc (and whatever parameters after /abc) is being redirected to /xyz
when HTTP_REQUEST {
if { [HTTP::host] contains "example.com" }{
elseif { [HTTP::uri] starts_with "/abc" } {
HTTP::redirect /xyz
}
My new requirement is:
If the uri is /abc (and whatever parameters after /abc, eg: /abc?=un), it should redirct to /xyz
If the uri is /abc-def (and whatever parameters after /abc-def, eg: /abc-def?=un, it should stay on same URI /abc-def
Could you please let me know how this can be acheived? Thanks
Thank you all for your help.
I write this irule and solve my problem.
when HTTP_REQUEST {
if { [HTTP::host] contains "example.com" }{
elseif { [HTTP::uri] starts_with "/abc" and not ([HTTP::uri] contains "abc-def") } {
HTTP::redirect /xyzThis is what happening.
example.com/abc -> redirecting to example.com/xyz
example.com/abc?=un -> redirecting to example.com/xyzexample.com/abc-def -> It stays as it is. This is my requirement.
example.com/abc-def?=un -> It stays as it is. This is okay for me now.I was looking if there is anyway example.com/abc-def?=un can also be redirected to example.com/abc-def by modifying the irule above.