Joe_Pipitone
Mar 02, 2011Nimbostratus
Regex
I've been requested to perform a rewrite / redirect which does the following:
http://subdomain.ourcompany.com/webext/01.aspx?status=error (pass the 01 over to the url below and say id=thatNumber)
needs to rewrite to
http://subdomain.ourcompany.com/post/post.ashx?id=01&status=error
I'm trying to make sure I'm going in the right direction here by using regex to analyze the URI, however the 01.aspx will be a different number, it will not always come from the application that way.
The web application may spit out a different error number such as 45.aspx or 123.aspx. The web application increments this number based on the number of errors received within the application, so there's a possibility that we will get into triple, 4, 5, 6 digits in the future.
The only thing that changes in the uri is this number. The ?status=error needs to be appended and the number moved over to result in something like:
http://subdomain.ourcompany.com/post/post.ashx?id=01&status=error
I found this iRule - can I use this or something similar to increment using \d+ to say one or more digits within the regex?
Or a string match?
string match -nocase {[0-9999][[0-9999]}
Thanks for any help - I'm unsure how to move forward.
elseif {[HTTP::host] == "subdomain.ourcompany.com" } { if { [HTTP::uri] contains "/webext/\d+.aspx?status=error"} {
set urivar
if { ! ( $urivar matches_regex ^.*?
\/webext\/\d+\[a-zA-Z0-9]) } {
rewrite here
}
else {
pool something else
}
}