How do I conditionally handle undefined SSI variables using Apache?
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 echo
ing 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?
Solution 1:
For Apache 2.4 the expressions have changed:
<!--#if expr="-z v('CONTENT_LANGUAGE')"-->
<!--#set var="CONTENT_LANGUAGE" value="en"-->
<!--#endif-->
Solution 2:
I've used this successfully:
<!--#if expr="! $CONTENT_LANGUAGE" -->
<!--#set var="CONTENT_LANGUAGE" value="en" -->
<!--#endif -->