mod_publisher: Server Side Includes
mod_publisher implements Server Side Includes using the same handler
code as mod_xhtml, with expression and
interpolation code from mod_include.
Since server side includes are familiar to users, we will confine our
discussion to the differences between this implementation and mod_include,
and how SSI processing relates to other processing supported by mod_publisher.
Differences with mod_include
SSI processing in mod_publisher mostly emulates the capabilities
of the current mod_include in Apache 2.1.
Extensions
-
In addition to
<!--#include file="..."-->
and
<!--#include virtual="..."-->
, mod_publisher
implements a third include directive.
<!--#include url="http://some.remote.url/some/path"-->
will include contents fetched from a remote URL.
Limitations
- The SSI exec directive is deprecated in Apache, and not
implemented in mod_xhtml. This will probably never be implemented.
As in mod_include, include virtual is preferred.
- Regular expressions in expression matching are not supported.
This will probably be implemented sometime in future.
Other
-
mod_publisher's internationalisation support (as
discussed under parse modes) is believed
to be better than mod_include's.
-
Some mod_include directives depend on the ordering of
attributes within an SSI comment: for example the encoding
must come before the var in the echo directive.
mod_publisher lifts this dependency.
Directives
- MLCommentMode determines
whether SSI processing is enabled.
- SSIerrmsg
sets the error message sent to the browser when a processing
directive fails.
- SSItimefmt
sets the format for output of date/time fields.
- SSIsizefmt
sets the format for output of size fields.
- MLProxyHost and
MLProxyPort configure a proxy for
#include url="..." directives fetching contents from another server.
The three SSI configuration directives set
processing defaults that can be overridden in a document by the SSI
config directive. They all work as documented under mod_include's
config directive.
Precedence
If SSI comment processing is enabled, comments of the form
<!--#directive [args]--> will be processed as SSI.
However, this may be overridden if a namespace
module implements a different handler for these directives.