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

Bad Request when access through BIG IP

Manhtuyen2
Nimbostratus
Nimbostratus

Hi All,

 

We have an internal website published via BIG IP. The scenarios we have as below:

 

  • Access direct to the website "https://internalweb.com/index.html?keysearch=test%20search" => OK
  • Access to the website through BIG IP "https://f5web.com/index.html?keysearch=test%20search" => Bad Request - HTTP Error 400. The request is badly formed.

 

I've check the request F5 sent to the backend server in the error case, seems like F5 decoded the URI and sent the request "https://f5web.com/index.html?keysearch=test search" to backend server.

 

Does anyone have advice which settings i can modify to fix this issue?

1 REPLY 1

Manhtuyen2
Nimbostratus
Nimbostratus

Hi all,

I already figured out the problem. It's because the decode irule we use in the url filtering irule & it return the decode request to backend server by "HTTP::uri $uri"

when HTTP_REQUEST {
  # decode original URI.
  set tmpUri [HTTP::uri]
  set uri [URI::decode $tmpUri]
 
  # repeat decoding until the decoded version equals the previous value.
  while { $uri ne $tmpUri } {
    set tmpUri $uri
    set uri [URI::decode $tmpUri]
  }
  HTTP::uri $uri
 
  log local0. "Original URI: [HTTP::uri]"
  log local0. "Fully decoded URI: $uri"
}