home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  

Book HomeWebmaster in a Nutshell, 3rd EditionSearch this book

13.5. Conditional Statements

Apache allows you to include only select portions of a server document using conditional statements. These conditional statements are based on the value of server-side variables initialized earlier using the SSI set command. The Apache flow-control statements allow you to effectively customize a document without adding more complex CGI programs to perform the same task.

There are four Apache flow-control statements:

<!--#if expr="expression" -->
<!--#elif expr="expression"-->

Each works as you would expect from an ordinary scripting language. Note that each if must have a closing endif server-side statement. For example:

<!--#if expr="$myvar=activated" --> 
<B>The variable appears to be activated</B>
<!--#elif expr="$myvar=inactive"--> 
<B>The variable appears to be inactive</B>
<B>The variable has an unknown value</B>

Table 13-2 shows the allowed expressions, where the order of operations is as expected in a traditional programming language. Note that in some cases, var2 is allowed to be an egrep-based regular expression if it is surrounded by slashes (/) on both sides.

Table 13-2. XSSI conditional expressions




True if the variable is not empty


True if the variables match


True if the variables do not match


True if the first variable is less than the second


True if the first variable is less than or equal to the second


True if the first variable is greater than the second


True if the first variable is greater than or equal to the second


True if the enclosed condition is true


True if the condition is false


True if both expressions evaluate to true


True if either expressions evaluates to true

Finally, you can place regular strings inside single quotes to preserve any whitespaces. If a string is not quoted, extra whitespaces are ignored. For example:

this   is   too  much    space

This string does not have quotes and will be collapsed to:

this is too much space

However, if you place the string in single quotes, the whitespace is preserved:

/'this   is   too  much    space/'

You can also place strings in double quotes, but you will have to escape each one while inside the expr="" expression, as shown here:

<!--#if expr="\" $HTTP_REFERER\" != " -->

Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.