Forum Discussion
khawasli_50856
Mar 09, 2011Nimbostratus
Problem with charset and rewriting HTML content
Hi,
I have been facing an issue where Arabic characters come out all funny (corrupted basically) after rewriting some URIs and javascript events in my HTML (not using a streaming profile). I have...
hooleylist
Mar 10, 2011Cirrostratus
Hi,
I'd go back to using a stream profile and STREAM::expression iRule. While you can't use positive lookaheads, you can modify your stream expression to match more of the source string than you need to replace and then inspect the match and customize the replacement in the STREAM_MATCHED event using STREAM::match and STREAM::replace. Here are the related wiki pages for the commands. You can check the STREAM::expression page for an example of the rewriting in STREAM_MATCH:
http://devcentral.f5.com/wiki/default.aspx/iRules/stream
http://devcentral.f5.com/wiki/default.aspx/iRules/stream__expression
This example shows how you can use STREAM::match in the STREAM_MATCHED event to check if the matched string meets some condition that can't easily be checked for using a single regex in STREAM::expression.
when HTTP_REQUEST {
Disable the stream filter for all requests
STREAM::disable
}
when HTTP_RESPONSE {
Check if response type is text
if {[HTTP::header value Content-Type] contains "text"}{
Match an http://*example.com string and replace it with nothing yet
STREAM::expression {&http://.*?example\.com&&}
Enable the stream filter for this response only
STREAM::enable
}
}
when STREAM_MATCHED {
Check if the matched string meets some condition that can't easily be checked for using a single regex in STREAM::expression
if {[STREAM::match] starts_with "host1"}{
Replace http:// with https:// and do the replacement
STREAM::replace "[string map {http:// https://} [STREAM::match]]"
log local0. "[IP::client_addr]:[TCP::local_port]: matched: [STREAM::match], replaced with: [string map {http:// https://} [STREAM::match]]"
}
}
Aaron
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