Forum Discussion
Nick_T_68319
Nimbostratus
Feb 26, 2014APM not rewriting properly
I am trying to setup an APM portal for a call recording product. Everything is working perfectly except we found that one page has some kind of hard coded URL in the HTML. APM is not rewriting it, ...
Rene_C_
Nimbostratus
Feb 27, 2014Wouldnt it be sufficient to just rewrite the http://internalservername:8080 with the current hostname?
So some iRule like this:
when HTTP_REQUEST {
Don't allow data to be chunked so we can correctly
replace payload below
if { [HTTP::version] eq "1.1" } {
if { [HTTP::header is_keepalive] } {
HTTP::header replace "Connection" "Keep-Alive"
}
HTTP::version "1.0"
}
save host
set hostname [HTTP::host]
}
when HTTP_RESPONSE {
collect response data
if { [HTTP::header exists "Content-Length"] } {
set content_length [HTTP::header "Content-Length"]
} else {
set content_length 4294967295
}
if { $content_length > 0 } {
HTTP::collect $content_length
}
}
when HTTP_RESPONSE_DATA {
if { $::patch_apple_and_banana } {
set find "http://internalservername:8080"
set replace "https://$hostname"
set offset 0
set diff [expr [string length $replace] - [string length $find]]
Get indices of all instances of find string in the payload
set indices [regexp -all -inline -indices $find [HTTP::payload]]
foreach idx $indices {
set start [expr [lindex $idx 0] + $offset]
set end [expr [lindex $idx 1] + $offset]
set len [expr {$end - $start + 1}]
replace the instance of find with the contents of replace
HTTP::payload replace $start $len $replace
modify offset if the replace string is larger or smaller
than find.
incr offset $diff
}
}
}
(based on this site)
Though i'm not sure if you really should inspect any response that's coming through; But i guess you get the point.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects