Project

General

Profile

Actions

Mod ssi » History » Revision 14

« Previous | Revision 14/28 (diff) | Next »
Anonymous, 2008-08-31 19:36
Links to patches for unsupported features


TracNav(DocsToc)


#!rst

====================
Server-Side Includes
====================

---------------
Module: mod_ssi
---------------

.. contents:: Table of Contents

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", ... )
  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:

- nested requests with `include virtual`: use exec to execute scripts or apply the patch at http://trac.lighttpd.net/trac/ticket/536
- `echo var` for SSI variables: it only works for environment variables if you don't apply patch at http://trac.lighttpd.net/trac/ticket/795
- config.errmsg
- echo.encoding

Updated by Anonymous about 16 years ago · 14 revisions