Mod ssi » History » Revision 13
Revision 12 (Anonymous, 2008-08-31 17:24) → Revision 13/28 (Anonymous, 2008-08-31 19:36)
[[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"--> For now it works only for environment variables, not user specified SSI variables. - ``<!--#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`: include - 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 #536 - config.errmsg - echo.encoding }}}