How you do this depends on a few factors.
- Is it JUST this URL or are there many to map?
- Does the Host header have to change to "def:8080" for the back end server to accept it?
At the very least, assuming no to both questions above, you can do something like this:
when HTTP_REQUEST {
if { [HTTP::uri] equals "/" } {
HTTP::uri "/123/456"
}
}
If the URI is "/", then transparently replace the URI in the request with "/123/456". If the server doesn't need the "def:8080" Host header, and since you're already load balancing to port 8080, this might work for the simplest site. Anything more complex and you have to start looking at things like ProxyPass - an iRule/datagroup combo that does mass translation from/to external/internal Hosts, URIs, and pools.
In any case, the HTTP::uri command silently changes the request URI inbound, so that the client never sees this in the browser.