=Staticmod= Staticmod is a module allowing to serve static pages (files). ==Configuration ===Basics To use that extension, first load it from the configuration file: {{{ <extension findlib-package="ocsigenserver.ext.staticmod"/> }}} Then configure your hosts as in this example: {{{ <static dir="/path/to/the/local/directory" /> }}} Note that when running Ocsigenserver as a daemon, a relative path is interpreted starting at ##/##. ===Rewriting URLs You may also want to filter or rewrite URLs, as in this example, that allows user to have their home pages: {{{ <static regexp="~([^/]*)(.*)" dest="/home/\1/public_html\2"/> }}} {{{regexp}}} is a regular expression using PERL syntax (PCRE). Actually, for user's pages, it is better to do: {{{ <static regexp="~([^/]*)(.*)" dest="$u(\1)/public_html\2"/> }}} {{{$u(toto)}}} will be replaced by the home directory for user toto. You can also specify the option root as in {{{ <static regexp="~([^/]*)(.*)" dest="$u(\1)/public_html\2" root="$u(\1)/public_html"/> }}} This will wave all symlinks checks above the directory {{{u(\1)/public_html}}}. This option is not permitted inside userconf files. ===Catching HTTP errors Here is an example on how to set a default error page for all 40x errors: {{{ <static code="40." regexp=".*" dest="/your/error/page.html"/> }}} {{{code}}} is a regular expression (here matching 400, 401 etc.). {{{regexp}}} is optional (matches the URL path). Note that if you want to catch errors from all sites, you need to put this configuration in a separate <site path="">at the end of your configuration file. ===Max-age and Expires Here is an example on how to set up the {{{Cache-control: max-age}}} and {{{Expires}}} HTTP headers: {{{ <static dir="/path/to/the/local/directory" cache="2678400" /> }}} The {{{cache}}} argument is given in seconds. (1 month in the example) When the {{{cache}}} argument is {{{0}}} or {{{no}}}, the {{{Cache-control: no-cache}}} header is sent. ===Staticmod and userconf (version 1.2.0 and greater) Staticmod is authorized inside userconf files, but all paths specified by dir or dest must be relative, and cannot contain "{{{/../}}}" or end by "{{{/..}}}". The relative paths are concatenated with the result of evaluating the attribute localpath of userconf. ===Other options See also module extendconfiguration for some options, like the ability to follow symlinks or to display directories. In particular, the old syntax {{{readable="readable"}}} is no longer available in staticmod (but can be simulated by the option {{{listdirs}}} of extendconfiguration).