Project

General

Profile

Actions

Mod ssi » History » Revision 19

« Previous | Revision 19/28 (diff) | Next »
frb, 2012-10-01 19:50
Note that if you use mod_compress mod_ssi must come first to function.


Server-Side Includes

Module: mod_ssi

Description

SSI is a very old and cheap way to generate content dynamically on server-side.

The use of this module is strongly discouraged:
  • the execution of a SSI script is done in the server-core
  • a long-running SSI script blocks the handling of ALL connections
  • as soon as you use #exec the performance gets worse than using CGI scripts directly
You should only use SSI for two reason:
  • content assembling with #include
  • legacy applications

Configuration

You have to load the mod_ssi module and set the ssi-extension:

server.modules = ( ..., "mod_ssi", ... ) #Note that if you use mod_compress mod_ssi must come first to function.
ssi.extension = ( ".shtml" )

Supported Options


 <!--#echo var="..." -->
  <!--#echo var="DOCUMENT_ROOT"-->
 <!--#include file="..."\|virtual="..." -->
 <!--#flastmod file="..."\|virtual="..." -->
 <!--#fsize file="..."\|virtual="..." -->
 <!--#config timefmt="..." sizefmt="(bytes|abbrev)" -->
 <!--#printenv -->
 <!--#set var="..." value="..." -->
 <!--#if expr="..." -->
 <!--#elif expr="..." -->
 <!--#else -->
 <!--#endif -->
 <!--#exec cmd="..." -->
 <!--#exec cmd="date"-->

Expression Handling

Every "expr" is interpreted:
  • logical: AND, OR, !
  • compare: =, <, <=, >, =>, !=
  • precedence: (, )
  • quoted strings: 'string with a dollar: $FOO'
  • variable substitution: $REMOTE_ADDR
  • unquoted strings: string

Flow Control

if, elif, else and endif can only be used to insert content under special conditions.

Unsupported Features

The original SSI module from NCSA and Apache provided some more options which are not supported by this module for various reasons:

Updated by frb over 11 years ago · 19 revisions