Forum Discussion
jtostado_47719
Nimbostratus
Oct 21, 2009BIGIP 4.5 to 9.3.1 iRule Conversion
I need help converting this rule:
if (http_uri ends_with one of portal_redirect_class) {
redirect to "https://psp-portal.com/portal/server.pt"}
else {
use pool SHAREPOINT
}
27 Replies
- The_Bhattman
Nimbostratus
I suppose it can be re-written to the followingwhen HTTP_REQUEST { if { [HTTP::uri] ends_with ".jpg" } { HTTP::redirect "https://psp-portal.com/portal/server.pt" else { pool SHAREPOINT } }
orwhen HTTP_REQUEST { if { [HTTP::uri] ends_with $::portal_redirect_class } { HTTP::redirect "https://psp-portal.com/portal/server.pt" else { pool SHAREPOINT } }
I hope this helps
CB - jtostado_47719
Nimbostratus
I got error with both!
They both say:
line 1 - parse error:missing close-brace
line 2 - command is not valid in the current scope - The_Bhattman
Nimbostratus
There was syntax error on minewhen HTTP_REQUEST { if { [HTTP::uri] ends_with ".jpg" } { HTTP::redirect "https://psp-portal.com/portal/server.pt" } else { pool SHAREPOINT } }
orwhen HTTP_REQUEST { if { [HTTP::uri] ends_with $::portal_redirect_class } { HTTP::redirect "https://psp-portal.com/portal/server.pt" } else { pool SHAREPOINT } }
Keep in mind that this is an example.
CB - jtostado_47719
Nimbostratus
That did the trick. Thanks a bunch. - Sams_88783
Nimbostratus
Please help me to convert irule
else if (http_uri starts_with "/nos8" and not (http_header("SSLClientCertStatus") == "OK")) {
redirect to "https://syst.com/nos8/"
} - The_Bhattman
Nimbostratus
Hi Sumod,
you could write it is. . . else if { ([HTTP::uri] starts_with "/nos8") and !([HTTP::header "SSLClientCertStatus"] eq "OK" ) } { HTTP::redirect "https://syst.com/nos8/" . . .
I hope this helps
Bhattman - Sams_88783
Nimbostratus
Thanks Battman.It worked. - Sams_88783
Nimbostratus
Please help me with this also...i tired but its giving me error
if (client_addr == 10.1.1.1 netmask 255.255.255.255) {
if (http_uri contains one of MemberEligibility) {
use pool POOL_230_2
}
else {
use pool _POOL_230_1
}
}
else if (client_addr == 10.1.1.8 netmask 255.255.255.255) {
use pool POOL_230_ALL
}
else {
log "Using generic rule. Unexpected IP: ${client_addr}"
if (http_method == "GET") {
log "GET method used."
}
else if (http_method == "POST") {
log "POST method used."
}
else {
log "Unexpected method used."
}
if (http_uri contains one of MemberEligibility) {
use pool POOL_230_2
log "Eligibility request made."
}
else if (http_uri ends_with one of images) {
use pool POOL_230_ALL
log "Image request made."
}
else {
use pool POOL_230_1
log "Generic request made."
}
} - The_Bhattman
Nimbostratus
Hi Sumod,
I suppose it would look more or less something like this untested codewhen HTTP_REQUEST { if {[IP::addr[IP::client_addr] equals 10.1.1.1] } { if { [string tolower [HTTP::uri]] contains "memberelegibility" } { pool POOL_230_2 } else { pool POOL_230_1 } } else if {[IP::add [IP::client_addr] eq 10.1.1.8] } { pool POOL_230_ALL } else { switch [HTTP::method] { "GET" { log local0. "GET method used" } "POST" { log local0. "POST method used"} default { log local0. "Unexpected method used" } } switch [string tolower [HTTP::uri]] { "*membereligibility* { pool POOL_230_2 log local0. "Eligibility request made." } "*images" { pool POOL_230_ALL log local0. "Image request Made" } default { pool pool_230_1 log local0. "Generic Request Made" } } } }
I hope this helps
Bhattman - Sams_88783
Nimbostratus
I dont think so...because when i checked in Classes option i had found an entry "MemberEligibility" "String" some URL's mentioned over there.
In 9.x how we will do it in the same way.
Please help me with this
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
