Below is my rule, and for HTTP, it is close to working as expected, but for HTTPS via SSL proxy, I am noticing strange behavior. Please see the ltm log snippet from the 2 at the bottom. For some reason, it will attach the "token" twice in front of the host when going via SSL proxy. Any idea why, would this be a bug? I had both VIP configured identically except for the proxy part, using the same rule and pool.
when HTTP_REQUEST {
set host [HTTP::host]
log local0. $host
set uri [HTTP::uri]
set token [getfield [HTTP::uri] "/" 2]
if { $token eq "" } {
log local0. "no path specified so ignore"
} else {
if { [matchclass $uri ends_with $::file_extensions] > 0 } {
log local0. "Found file request, leave as is!"
set host "$token.$host"
HTTP::header replace "host" $host
} else {
log local0. "Not a file request, update host and check for trailing slash "
if { not ( $host starts_with $token ) } {
set host "$token.$host"
log local0. "Updated host with token: $host"
HTTP::header replace "Host" $host
}
if { $uri ends_with "/" } {
log local0. "Uri ends with a slash, all's good"
} else {
log local0. "Uri doesn't end with a slash, appending one"
append uri "/"
HTTP::uri $uri
}
}
}
log local0. "host: $host"
log local0. "uri : $uri"
}
Log from HTTP LB:
Thu Aug 11 02:14:34 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Not a file request, update host and check for trailing slash
Thu Aug 11 02:14:34 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Updated host with token: aao.cc71.ddc-f5.com
Thu Aug 11 02:14:34 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Uri doesn't end with a slash, appending one
Thu Aug 11 02:14:34 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: aao.cc71.ddc-f5.com
Thu Aug 11 02:14:34 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /aao/
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: dmb_i.gif.cc71.ddc-f5.com
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /dmb_i.gif
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: dmb_m.gif.cc71.ddc-f5.com
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /dmb_m.gif
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: AAO.cc71.ddc-f5.com
Thu Aug 11 02:14:35 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /AAO/_images/banner_checkbox1.gif
Log from HTTPS via SSL proxy:
Thu Aug 11 02:31:00 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Not a file request, update host and check for trailing slash
Thu Aug 11 02:31:00 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Uri doesn't end with a slash, appending one
Thu Aug 11 02:31:00 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: aao.cc71.ddc-f5.com
Thu Aug 11 02:31:00 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /aao/
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: dmb_i.gif.dmb_i.gif.cc71.ddc-f5.com
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /dmb_i.gif
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: dmb_m.gif.dmb_m.gif.cc71.ddc-f5.com
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /dmb_m.gif
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : Found file request, leave as is!
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : host: AAO.AAO.cc71.ddc-f5.com
Thu Aug 11 02:31:01 EDT 2005 tmm tmm[739] Rule host_rewrite2 : uri : /AAO/_images/banner_checkbox1.gif