Forum Discussion
irule for extracting a string from a URI
Hi experts,
I am new to irule and it doesn't look like I am allowed much time to learn it properly... In short, they want me to redirect to a URL when all the members in the pool are down. The problem is that the redirect URL will need some data from the original URL.
Original -> http://ecmqut.network.qut/ecmlivelink/llisapi.dll/open/168812040
Redirect to -> http://csintqut.network.qut:81/fsl/Redirect.aspx?docid=168812040
As you can see, the number string is what I need to extract from the original URL. Here is my irule (that's not working)
when HTTP_REQUEST {
if { [active_members livelink_qut_tcp_8100_pool] < 1 } {
set doc_id [regexp \\/open\\/\(\\d+\)\[0-9\] [HTTP::uri] ]
# HTTP::redirect "http://outagemessage-qut.network.qut/"
log local0. “http://csintqut.network.qut:81/fsl/Redirect.aspx?docid=$doc_id”
}
}
As you can see, I am not even redirecting right now. I am just logging it to make sure it comes out right and it doesn't... I am getting error like
http_process_state_prepend - Invalid action:0x109010 Server sends too much data. serverside
Please help...
Thanks,
Difan
4 Replies
- Jaspreetgurm
Altocumulus
is this remain same "168812040" for all client connections ? or every connection gets different ID ?
- DifanZ
Cirrus
Hey thanks Jaspreet. yes the number is dynamic. The length is also random...
- spalande
Nacreous
You can try below.
when HTTP_REQUEST { if { ([string tolower [HTTP::uri]] starts_with "/ecmlivelink/llisapi.dll/open") and ([active_members livelink_qut_tcp_8100_pool] == 0) } { set doc_id [string range [HTTP::uri] 30 end] HTTP::respond 301 Location "http://csintqut.network.qut:81/fsl/Redirect.aspx?docid=$doc_id" return } }- DifanZ
Cirrus
Thanks Sanjay. The length might be dynamic and there could be at least a slash at the end of the link.. I actually opened a case and I am provided with a regular expression code like this
regexp "/open/(\[0-9\]+" $uri something doc_id
This successfully got me the number, regardless of the pending characters. But thanks anyway for your help!
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* 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