Todd_Behrens_20
Dec 14, 2017Nimbostratus
Insert JavaScript If URL path contains word
Hi Everyone, im kind of newbie when it comes to irules and was hoping someone could help me out. I'm looking to insert a javascript into the header of http response only if a certain word is in the URL path. ive been digging around and found a script that work to insert the javascript like i need but im having issues limiting it to only certain paths.
here is the insert code that works;
when RULE_INIT {
Insert IM Token Javascript
set static::jscript {
}
}
when HTTP_REQUEST {
Disable the stream filter by default
STREAM::disable
set uri [string tolower [HTTP::uri]]
}
when HTTP_RESPONSE {
if { [HTTP::status] == 200 } {
if {[HTTP::header value Content-Type] contains "text"} {
set stream_find ""
set stream_find_lower ""
set stream_repl ""
set insertJscript 1
Do not allow the Javascript insertion if the pages end with the following
switch -glob $uri {
"*.ashx*" -
"*.asmx*" -
"*.axd*" -
"*.js*" {
set insertJscript 0
}
default {
if { [HTTP::payload] contains "META HTTP-EQUIV=\"Refresh\""} {
set insertJscript 0
}
}
}
if {$insertJscript == 1} {
append stream_repl $static::jscript
append stream_expression "@$stream_find@$stream_repl$stream_find@"
append stream_expression "@$stream_find_lower@$stream_repl$stream_find_lower@"
STREAM::expression $stream_expression
STREAM::enable
}
}
}
}
i found it here; https://devcentral.f5.com/codeshare?sid=741
i tried modifying it restrict it to certain word in the url path but i keeps giving me a reset error when i enable it. word is "anakin"
when HTTP_REQUEST {
Disable the stream filter by default
STREAM::disable
if {[string tolower [HTTP::uri]] contains "/anakin" } {
set sitepath [string tolower [HTTP::uri]]
}
}
if anyone can give me pointers it would be greatly appreciated.
thanks in advance.