Условные выражения
Сами переменные окружения редко применяются для их вывода на страницу. Гораздо полезнее сравнивать их с некоторым значением и в зависимости от этого сравнения принимать решение о выводе текста. Такое сравнение называется условным выражением и встречается практически во всех языках программирования. Условные выражения есть и в SSI, в общем виде они записываются так.
<!--#if expr="условие1"-->
  Если условие1 истинно, то будет выводиться этот текст.
<!--#elif expr="условие2"-->
  Если условие1 ложно, а условие2 истинно, тогда вместо первого текста выводится этот.
<!--#else-->
  Данный текст выводится, если условие1 и условие2 оба ложны.
<!--#endif-->Не обязательно использовать эту конструкцию целиком, вполне можно вставлять её частично, например так.
<!--#if expr="условие1" -->
  Если условие1 истинно, что-нибудь вывести.
<!--#endif -->В этом случае если условие выполняется, то будет выводиться текст или код внутри <!--#if--> и <!--#endif-->, в противном случае, т. е. когда условие1 ложно, то конструкция пропускается и текст не отображается.
В табл. 1 перечислены возможные выражения, которые возвращают истину при соблюдении описанных условий.
| Условие | Описание | 
|---|---|
| str | Строка str не пустая. | 
| !str | Строка str пустая. | 
| str1=str2 | Значение str1 равно str2. | 
| str1!=str2 | Значение str1 НЕ равно str2. | 
| str1<str2 | Значение str1 меньше str2. | 
| str1<=str2 | Значение str1 меньше или равно str2. | 
| str1>str2 | Значение str1 больше str2. | 
| str1>=str2 | Значение str1 больше или равно str2. | 
| str1 && str2 | Строка str1 И строка str2 не пустые. | 
| str1 || str2 | Строка str1 ИЛИ строка str2 не пустые. | 
Сложные выражения можно брать в круглые скобки, например, написать так:
(str1>0) && (str1<5)
Это условие возвращает истину, когда str1 больше нуля и меньше пяти. Под истиной и ложью подразумевается выполнение логического или математического соответствия, так, 1>0 это истина, а 1<0 ложь.
Для использования переменных окружения в условных выражениях перед именем переменной следует поставить знак $. Текст и сравниваемые значения берутся в слэш (/текст/). Если внутри значения встречается символ /, то значение можно экранировать следующим образом.
\"/path/to/server\"
'/path/to/server'
Текст пишется внутри \" и \" или обрамляется одинарными кавычками. В примере 1 показано использование условия и переменной REMOTE_ADDR для сравнения IP-адреса со значением 127.0.0.1.
Пример 1. IP-адрес
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>SSI</title>
 </head>
 <body>
  <!--#if expr="($REMOTE_ADDR = /127.0.0.1/)"-->
   <p>Вы зашли с локального адреса.</p>
  <!--endif-->
 </body>
</html>