I figured it was some weird IBM web server thing, and it was. Our F5 PS guy said that sometimes web apps enforce the listening port by looking for it in the host headers, so I had to modify the port in the headers. Here are the iRules that are on my JDE port 80 VS, in this order. It is now working. Thanks for everyone's help.
1. Redirect the browser to the FQDN if it comes in with a short name
when HTTP_REQUEST {
if { [string tolower [HTTP::host]] equals "jde" } {
HTTP::redirect "http://jde.domain.loc[HTTP::uri]"
}
}
2. Append the URI to send users to the logon page if they come in without a URI
when HTTP_REQUEST {
if {([HTTP::uri] == "/") } {
HTTP::uri "/jde/E1Menu.maf"
}
}
3. Rewrite the host header to tell the app that user really wants to talk to port 94 (thank-you devcentral!)
From: https://devcentral.f5.com/wiki/iRules.http_request_send.ashx
when HTTP_REQUEST_SEND {
Need to force the host header replacement and HTTP:: commands into the clientside context
as the HTTP_REQUEST_SEND event is in the serverside context
clientside {
Replace the HTTP host header with the selected server IP and port
HTTP::header replace Host "jde.domain.loc:94"
}
}