Forum Discussion
elvisc_26948
Nimbostratus
Dec 21, 2009Replace URI subset
I am simply trying to look for ch1 and replace that with ch2 in URI... any idea?
URI example:
Convert
/abc/cde/ch1/xxx/yyy/file.txt
To
/abc/cde/ch2/xxx/yyy/file.txt
when HTTP_REQUEST {
if { [HTTP::method] contains "GET" } {
log local0. "========>> HTTP URI: [HTTP::uri]"
STREAM::disable
STREAM::expression "@ch1@ch2@"
STREAM::enable
}
}
4 Replies
- The_Bhattman
Nimbostratus
Hi Elvisc,
If the path and depth is relatively the same then you could do the followingwhen HTTP_REQUEST { if { [HTTP::uri] starts_with "/abc/cde/ch1/" } { set namepath [URI::path [HTTP::uri] 4 5] set basen [URI::basename [HTTP::uri]] HTTP::redirect "http://[HTTP::host]/abc/cde/ch2/$namepath/$basen" } }
You might need to tweak it as I haven't tested this before i posted it.
I hope this helps
Bhattman - elvisc_26948
Nimbostratus
I figured out a easier and also transparent to the client:
HTTP::path [string map {ch1 ch2} [HTTP::path]]
Redirect would basically abort the previous http request and then the client has to actually hit enter to get to the redirect link...the above would be seemless.
thx for your help.
ec. - The_Bhattman
Nimbostratus
Yep that would work even better. - hoolio
Cirrostratus
Nice work. You could make the search/replace a little more specific by including the directories:
HTTP::path [string map {/ch1/ /ch2/} [HTTP::path]]
Aaron
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
