Forum Discussion
iRule URL/URI redirect question
Hello, we're implementing Jira in our environment and we want to redirect users and agents to different URIs. I'm trying to implement a rule to do the below:
If user enters: http://support.domain.org/customers LB redirects to: https://support.domain.org/servicedesk/customer/portals
If user enters: http://support.domain.org/agents LB redirects to: https://support.domain.org/secure/Dashboard.jspa
My attempt at this is below, but I'm getting errors.
when HTTP_REQUEST {
if { [HTTP::host] equals "support.domain.org" and [HTTP::uri] starts with "/customer"} {
HTTP::redirect "https://support.domain.org/servicedesk/customer/portals"
}
}
elseif { [HTTP::host] equals "support.domain.org" and [HTTP::uri] starts with "/agents"} {
HTTP::redirect "https://support.domain.org/secure/Dashboard.jspa"
}
}
else {
HTTP::respond 404 content "Unrecognized request to [HTTP::uri]" "Content-Type" "text/html"
}
}
Any assistance would be appreciated.
Thanks.
3 Replies
- Vijay_E
Cirrus
What errors are you seeing ? Maybe because of "starts_with" but you are not using the underscore.
You can break it down like this or maybe use switch statements:
when HTTP_REQUEST { if { [HTTP::host] eq "support.domain.org" } { if { [HTTP::uri] starts_with "/customers" } { HTTP::redirect "https://support.domain.org/servicedesk/customer/portals" } elseif { [HTTP::uri] starts_with "/agents" } { HTTP::redirect "https://support.domain.org/secure/Dashboard.jspa" } else { HTTP::respond 404 content "Unrecognized request to [HTTP::uri]" "Content-Type" "text/html" } } } - TayF5un_246984
Nimbostratus
Hi, you can use irule shown below;
when HTTP_REQUEST {
if { ([HTTP::host] eq "support.domain.org") and ([HTTP::uri] starts_with "/customers") } { HTTP::redirect "https://support.domain.org/servicedesk/customer/portals" } elseif { [HTTP::uri] starts_with "/agents" } { HTTP::redirect "https://support.domain.org/secure/Dashboard.jspa" } else { HTTP::respond 404 content "Unrecognized request to [HTTP::uri]" "Content-Type" "text/html" }}
Hi dlogsdonmd,
a nested
iRule structure shouldn't be that complex to setup. You may take a look to the syntax below to see how your initial requirement can be glued within a rather simple iRule...[if]when HTTP_REQUEST { Parse the requested HOST-Name using lower case formating... set low_host [string tolower [HTTP::host]] if { $low_host equals "support.domain.org" } then { Valid HOST-Name detected. Parse the requested PATH using lower case formating... set low_path [string tolower [HTTP::path]] if { $low_path starts_with "/customer" } then { Redirect the request... HTTP::redirect "https://support.domain.org/servicedesk/customer/portals" } elseif { $low_path starts with "/agents" } then { Redirect the request... HTTP::redirect "https://support.domain.org/secure/Dashboard.jspa" } else { Allow the request? } } else { Invalid HOST-Name requested HTTP::respond 404 content "Unrecognized request to [HTTP::host][HTTP::uri]" "Content-Type" "text/html" } }Note: The provided iRule uses a slightly more advanced syntax, by checking the requested Path/URI using lower case formating (more accurate).
Cheers, Kai
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