在 BigIP F5 iRules 中,'switch -exact' 和 'switch -glob' 是用于比较字符串的两个操作符。

  • 'switch -exact' 是一个精确匹配操作符,它会检查一个字符串是否与给定的模式完全匹配。如果匹配成功,它将执行相应的动作。例如:
when HTTP_REQUEST {
    switch -exact [HTTP::uri] {
        '/page1' {
            # 执行某个动作
        }
        '/page2' {
            # 执行另一个动作
        }
        default {
            # 默认情况下执行的动作
        }
    }
}

在上面的例子中,如果 HTTP 请求的 URI 是 '/page1',则会执行第一个动作;如果是 '/page2',则会执行第二个动作;如果是其他任何 URI,则会执行默认的动作。

  • 'switch -glob' 是一个通配符匹配操作符,它使用通配符模式来匹配一个字符串。通配符模式可以包含星号 (*) 和问号 (?),其中星号代表匹配任意数量的字符,问号代表匹配单个字符。例如:
when HTTP_REQUEST {
    switch -glob [HTTP::uri] {
        '/page*' {
            # 匹配以'/page'开头的 URI,执行相应的动作
        }
        '/product??' {
            # 匹配以'/product'开头,后面跟着两个字符的 URI,执行相应的动作
        }
        default {
            # 默认情况下执行的动作
        }
    }
}

在上面的例子中,如果 HTTP 请求的 URI 是以 '/page' 开头的,则会执行第一个动作;如果是以 '/product' 开头,后面跟着两个字符的 URI,则会执行第二个动作;如果是其他任何 URI,则会执行默认的动作。

总结起来,'switch -exact' 是一个精确匹配操作符,而 'switch -glob' 是一个通配符匹配操作符。它们可以根据需要来选择使用,以实现不同的匹配需求。

BigIP F5 iRules 中 switch -exact 和 -glob 的区别及示例

原文地址: https://www.cveoy.top/t/topic/Mdx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录