Forum Discussion
Mic_108850
Altostratus
May 05, 2010irule and '%23' in URL
Hi,
I'm using the following irule to redirect some requests :
if { not([findstr $ParsedURI "redirect.jsp"] eq "") } {
set MyRedir [string map -nocase {%3a : %3f ? %3d = %26 &} $MyPath]
set ToCache 0
When i request this URL i get an error
http://mydomain/redirect.jsp;jsessionid=aea?path=http%3A//mydomain2/2010/bro/link.html%3Fud_046.html%23fsf
When i request this one with specific symbols, it works
http://mydomain/redirect.jsp;jsessionid=aea?path=http:%3A//mydomain2/2010/bro/link.html%3FFud_046.htmlfsf
How to set my irule to accept the "%23" symbols?
Thanks
7 Replies
- Mic_108850
Altostratus
in fact, with my irule BIG-IP doesn't manage to transform %23 to ,
http://mydomain/html/redirect.jsp;jsessionid=dqd?path=http%3A//mydomain2/a/link.html%3Fud_046.html%23d
> the result in my browser is:
http://mydomain2/a/link.html?ud_046.html%23d
instead of that:
http://mydomain2/a/link.html?ud_046.htmld
Any ideas on this issue?
Thanks for your help - Mic_108850
Altostratus
i solved the problem changind adding matching for %23
set MyRedir [string map -nocase {%3a : %3f ? %3d = %26 & %23 } $MyPath] - hoolio
Cirrostratus
Another option to decode the URL encoded string would be to use the URI::decode command:set uri {http://mydomain/html/redirect.jsp;jsessionid=dqd?path=http%3A//mydomain2/a/link.html%3Fud_046.html%23d} log local0. "\$uri: $uri" log local0. "\[URI::query $uri\]: [URI::query $uri]" log local0. "\$uri decoded: [URI::decode [URI::query $uri]]"
RULE_INIT>: $uri: http:// mydomain/html/redirect.jsp;jsessionid=dqd?path=http%3A//mydomain2/a/link.html%3Fud_046.html%23d
RULE_INIT: [URI::query http:// mydomain/html/redirect.jsp;jsessionid=dqd?path=http%3A//mydomain2/a/link.html%3Fud_046.html%23d]: path=http%3A//mydomain2/a/link.html%3Fud_046.html%23d
RULE_INIT: $uri decoded: path=http:// mydomain2/a/link.html?ud_046.htmld
Aaron - Mic_108850
Altostratus
Hi Aaron, thanks for your feebback,
Indeed this irule has not been created by myself, and i was wondering on its meaning.
So how do you advise to change it?
like that: ?if { not([findstr $ParsedURI "redirect.jsp"] eq "") } { set MyRedir [string map $MyPath] set ToCache 0
do you think the URLs will be correctly decode in every browsers ? because i believe that -nocase(....) have been specified for old browser issues but i'm not sure this is a good reason... - hoolio
Cirrostratus
I am not sure what the goal of the iRule is so it's hard to give you a suggestion on what to change. Can you post the full iRule and any background info you might have for what it's supposed to do/issue(s) it's attempting to fix?
Thanks, Aaron - Mic_108850
Altostratus
i believe that -nocase(....) have been specified because of some decoding issues on old browser. do you think this could be possible? - hoolio
Cirrostratus
I'm not aware of any browser issues with URL decoding. As I said, the browser should actually be URL encoding the parameter values. The web app should be decoding them before using the parameter values.
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
