Forum Discussion

vishnu1994's avatar
vishnu1994
Icon for Altostratus rankAltostratus
Sep 20, 2022

Need help with irule

Hi 
I have an application xyz.com and we need only certain URI to be accessable and if the user directly go to xyz.com they need to get URL NOT ACCESSIBLE  and users only allowed to go to xyz.com/page1 ; xyz.com/page2 

How can we write a irule to allow this type of request?

Thanks in advance.

  • A simple switch might look like this:

    when HTTP_REQUEST {
       switch -glob [string tolower [HTTP::uri]] {
          "/page1" -
          "/page2" { }
          default {
              HTTP::respond 400 content "URL NOT ACCESSIBLE" "Connection" "close"
          }
       }
    }
  • A simple switch might look like this:

    when HTTP_REQUEST {
       switch -glob [string tolower [HTTP::uri]] {
          "/page1" -
          "/page2" { }
          default {
              HTTP::respond 400 content "URL NOT ACCESSIBLE" "Connection" "close"
          }
       }
    }
    • vishnu1994's avatar
      vishnu1994
      Icon for Altostratus rankAltostratus

      Hello 
      This I rule is blocking the URI's even with the /page1 and /page2

  • Hello 
    This I rule is blocking the URL's/URI's even with the /page1 and /page2

    any suggestion? 

    • Kevin_Stewart's avatar
      Kevin_Stewart
      Icon for Employee rankEmployee

      Try with some verbose logging:

      when HTTP_REQUEST {
         log local0. "Here: [string tolower [HTTP::uri]]"
         switch -glob [string tolower [HTTP::uri]] {
            "/page1/*" -
            "/page2/*" { 
                log local0. "Matching page1/page2, allow to pass through"
            }
            default {
                log local0. "Not matching page1/page2, block"
                HTTP::respond 400 content "URL NOT ACCESSIBLE" "Connection" "close"
            }
         }
      }