Forum Discussion

kgaigl's avatar
kgaigl
Icon for Cirrocumulus rankCirrocumulus
Dec 23, 2021
Solved

2 IRules with "when HTTP_REQUEST"

Hello, I need on a VS 2 IRules, one for redirect to a URI and one for a Maintanance Page: redirect:     when HTTP_REQUEST { if { [HTTP::uri] equals "/"} { HTTP::redirect "https://[H...
  • Enes_Afsin_Al's avatar
    Dec 23, 2021

    Hi kgaigl,

    I think a tcl error occurs. Can you investigate the ltm logs?

    cat /var/log/ltm | grep "TCL error"

    https://support.f5.com/csp/article/K23237429

    Redirect:

    when HTTP_REQUEST {
    	if { [HTTP::has_responded] } { return }
    	if { [HTTP::uri] equals "/" } {
    		HTTP::redirect "https://[HTTP::host]/some-uri"
    		return
    	}
    }

    Maintanance Page:

    when HTTP_REQUEST priority 450 {
    	if { [HTTP::has_responded] } { return }
    	if { [active_members [LB::server pool]] < 1 } {
    		switch [HTTP::uri] {
    			"/bg-wappen.gif" { HTTP::respond 200 content [ifile get "bg-wappen.gif"] }
    			default { HTTP::respond 200 content {
    				<!DOCTYPE html>
    				...

    Combined:

    when HTTP_REQUEST {
    	if { [HTTP::has_responded] } { return }
    	if { [HTTP::uri] equals "/" } {
    		HTTP::redirect "https://[HTTP::host]/some-uri"
    		return
    	}
    	elseif { [active_members [LB::server pool]] < 1 } {
    		switch [HTTP::uri] {
    			"/bg-wappen.gif" { HTTP::respond 200 content [ifile get "bg-wappen.gif"] }
    			default { HTTP::respond 200 content {
    				<!DOCTYPE html>
    				...