Forum Discussion

Ingo's avatar
Ingo
Icon for Nimbostratus rankNimbostratus
Aug 02, 2021

HTTP:uri in HTTP_Request error (not supported)

Hello,

 

we are using the below simple irule since years. However, with version 14.x.x or so there started an error to show up in the LTM log - also the irule seems to it's job anyway. I found an F5 document saying HTTP::uri is not allowed within HTTP_REQUEST.

I have to admit i am not god with this stuff, could someone please help to get that into an other syntax that does not through an error.

 

rule (simply removes the /80 from the URI):

 

when HTTP_REQUEST {

  HTTP::uri [string map {/80/_vti_bin/Webs.asmx /_vti_bin/Webs.asmx} [HTTP::uri]]

}

 

error:

 

TCL error: /Common/alfresco_acrobat_fix <HTTP_REQUEST> - Can't call after responding - ERR_NOT_SUPPORTED (line 1) invoked from within "HTTP::uri"

 

 

Many thanks,

Ingo

    • Stefan_Klotz's avatar
      Stefan_Klotz
      Icon for Cumulonimbus rankCumulonimbus

      Dear Daniel,

      thanks for the change in behavior link. I ran into this issue during our update yesterday evening from 13.1.5 to 15.1.8 as well. There were two different iRules in place, which both have a redirect command including a HTTP::uri condition. Connection was reset in the browser as stated in the article and the error count of the second iRule increased.
      I could solve the issue by consolidating both iRules into one and separate its content with if-statements.
      Now I know the reason 😉

      But I don't find any hint in the release notes of version 14.1.0 for this. Or did I look at the wrong place? Just for future updates to avoid any issues due to behavior changes. I mean it makes no sense to check all relevant release notes, if not all behavior changes are included.

      Regards Stefan 🙂

  • Ingo This might work for you.

    when HTTP_REQUEST {
    
        if {[HTTP::uri] == "/80/_vti_bin/Webs.asmx"} {
            HTTP::uri [string map {"/80/_vti_bin/Webs.asmx" "/_vti_bin/Webs.asmx"} [HTTP::uri]]
        }
    
    }