The If, ElseIf, and Else tags enable you to define the conditions under which to execute a set of directives. Like the Client tag, these tags can only appear inside an Object tag. In addition, these tags can evaluate an expression, then conditionally execute one or more contained directives. However, there are some key differences between the these tags and the Client tag, as summarized below:
If and ElseIf tags offer a richer expression syntax, including support for regular expressions. This expression syntax is different from the Client syntax. For more information on the If and ElseIf expression syntax, see Expressions.
If, ElseIf, and Else tags can contain other tags.
If and ElseIf expressions are evaluated once per request, not once per contained directive.
If, ElseIf, and Else tags cannot contain multiple types of directives.
Directives within the If and ElseIf tags can contain regular expression backreferences.
When used, an ElseIf or Else tag must immediately follow an If or ElseIf tag. ElseIf and Else tags are skipped if the preceding If or ElseIf expression evaluates to logical true.
The following example shows If, ElseIf, and Else tag syntax:
<If $path eq "/"> <If $browser =~ "MSIE"> NameTrans fn="rewrite" path="/msie.html" </If> <ElseIf $browser =~ "Mozilla"> NameTrans fn="rewrite" path="/mozilla.html" </ElseIf> <Else> NameTrans fn="rewrite" path="/unknown.html" </Else> </If>
This example presents a different page based on whether the browser is Microsoft Internet Explorer, Mozilla, or another browser.