How to conditionally handle undefined SSI variables using Apache

apache-2.2server-side-includes

I want to include a header in a bunch of pages, like so:

header.html:

<html>
  <head>
    <title>My site</title>
  </head>

To enable a page-specific title, I'm trying to use an SSI variable that I set in each page:

page1.html:

<!--#set var="TITLE" value="first page" -->
<!--#include file="header.html" -->

Then I”m modifying header.html to use that variable:

<title>My site - <!--#echo var="TITLE" --></title>

This works fine but, of course, it has the unfortunate effect that, if TITLE is not set, the result is:

<title>My site - (none)</title>

So I'm trying a variety of attempts at conditionally echoing that variable depending on whether it's none or not (e.g., <!--#if expr="TITLE != \(none\)" --> ... <!--#endif-->) …but nothing seems to work.

Seems like this would be quite a common requirement. Does anyone have a reference to a working solution?

Best Answer

For Apache 2.4 the expressions have changed:

<!--#if expr="-z v('CONTENT_LANGUAGE')"-->
<!--#set var="CONTENT_LANGUAGE" value="en"-->
<!--#endif-->