我如何有条件地处理未定义的SSIvariables使用Apache?

我想在一堆页面中包含一个标题,如下所示:

header.html

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

要启用页面特定的标题,我试图使用我在每个页面中设置的SSIvariables:

page1.html

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

然后我修改header.html使用该variables:

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

这工作正常,但当然,它有不幸的效果,如果没有设置TITLE ,结果是:

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

所以我试图有条件地echo应该variables的各种尝试取决于它是否没有(例如, <!--#if expr="TITLE != \(none\)" --> ... <!--#endif--> )…但似乎没有任何工作。

似乎这将是一个相当普遍的要求。 有没有人有一个工作解决scheme的参考?

好的,自己解决吧。 供他人参考:

 <!--#if expr="${TITLE}!=''" --> 

是使用正确的语法。 因为可以configuration未定义的文本值,所以您不必检查“(none)”; 我只是没有意识到发生后,检查价值,而不是之前。

我已经成功地使用了这个:

 <!--#if expr="! $CONTENT_LANGUAGE" --> <!--#set var="CONTENT_LANGUAGE" value="en" --> <!--#endif --> 

对于Apache 2.4, expression式已经改变:

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