DragonFly On-Line Manual Pages

Search: Section:  


XSCONF(5)                DragonFly File Formats Manual               XSCONF(5)

NAME

.xsconf - XS-httpd local configuration file

DESCRIPTION

An .xsconf file allows the user to set special directives for handling certain files in a directory. Using simple file matching commands, the user can set the mime-type, interpreter, character set or other options that are specific to a certain file or file pattern. The file consists of block which apply to a specific filename pattern. The pattern should be listed in square brackets and the options listed below will apply to all files that match the given pattern. See the EXAMPLE section below for an illustration. These patterns are standard fnmatch(3) patterns. The special case [*] will match all files in a directory. The filename may be prefixed by a method name and a slash to indicate that the following block only applies when the specified method is used. For instance [POST/*.cgi] would only match post requests for .cgi files. Alternatively the filename may be prefixed by the literal `./' to indicate that it matches only files in the current directory, rather than applying to all subdirectories as well, which is the default. Note that this is a special case and not part of the filename match: it is not possible to match filenames in subdirectories in this way. Configuration Directives All directives can only be used once in a block, unless explicitly mentioned otherwise (e.g. Restrict). MimeType Set the Content-Type for this file. This overrides the global mimetypes(5) file. A type must be of the form major/minor, e.g. `text/html'. Charset Specify the character of the document. Common character sets include `US-ASCII', `UTF-8', `ISO-8859-1', `KOI8-R' and `EUC-JP'. Language Specify the natural language(s) of intended audience for the specified document. Note that this might not be equivalent to all the languages used within the entity-body. For example `en-GB, nl'. Execute An execute command sets the program (full path name) that should be used as an interpreter (preprocessor) for the file. This overrides any settings in the global scripttypes configuration file. You can use this, for example to have all *.pl files interpreted by /usr/bin/perl. The special internal commands (such as `internal:404') may also be used here. See xsscripts(5) for more details. If the command line contains whitespace characters or special shell (redirection) characters the command will be executed in the system Bourne shell /bin/sh after appending the requested filename to the command line. The command line may also contain the special string `%f' which will be replaced by the filename. If `%f' is present, then the filename won't be appended at the end of the command line. Execute commands can be disabled globally by setting the UseLocalScript to `false' in httpd.conf(5). Restrict The argument to a restrict command should be a list of one or more IP addresses, IP prefixes or IP subnets in CIDR notation. Multiple arguments should be separated by commas. Access to the matching files will only be granted if the IP of the visitor matches one of the restrict address blocks. All other visitors will be presented with a `403 Permission Denied' error. NoPrivs Boolean setting; if set to `true' then all matching files will be retrieved using the unpriviliged account of the webserver (by default `nobody/nogroup') instead of under your own UID. This can be useful if you want a file permission of say 600 to mean: do not allow retrieval. The default is `false': all file are retrieved under your own UID. AuthFile Specify a password file that should be used to decide who is granted access to the matching file. Users who cannot produce the required credentials will be presented with a `401 Access Denied' error. See xsauth(5) for the layout of such a file. Multiple filenames may be given and if any contains a matching username/password combination, access will be granted. Never combine basic and digest authentication files, as browsers will not be able to deal with this. IndexFile Set an alternative index file to be displayed if the default index.html does not exist. This setting only makes sense in a general [*] block. Note that the index is still subject to options that match this filename in other block. For example one can set index.py as the index and add a [*.py] block that sets Python as a local interpreter for all *.py files. PutScript Full pathname of the CGI program that should handle HTTP PUT requests for files in this directory. The requested resource (filename) is passed on through the PATH_TRANSLATED environment variable. See httpd_cgi(7) for dealing with CGI scripts. Note that PUT requests require special status codes. Only available when UsePut is enabled in the global server configuration. DeleteScript Full pathname of the CGI program that should handle HTTP DELETE requests for files in this directory. Works analogous to PutScript. ScriptTimeout Override the default timeout that is used to restrict the execution time of all CGI scripts (wall time in minutes). Other limits will still apply though, specifically the per process CPU limit. p3pPolicyReference Set the URL that contains the full P3P specification which describes the privacy policy for the requested file. This URL should refer to a correctly formatted XML document. The default location for a site is /w3c/p3p.xml. Don't set this option if you wish to use the default. p3pCompactPolicy In stead of, or in addition to a policy reference, it's possible to specify the full P3P policy in a compact notation (consisting of a string of short abbreviations). If set, this policy will be added to the headers of the requested document. ContentSecurityPolicy Set the content security policy for the selected resource. If set, this policy will be added to the headers of the requested document(s). PublicKeyPins Set the HTTP public key pinning header for the selected resource. The value will be used unchanged in the Public-Key-Pins header. It should contain the hash values of the public keys that are used for the website. It is recommended to always include an additional key hash, for a key which is stored offline. Note that this value is independent of a certificate: a certificate may be renewed without changing the private key, in which case the header does not need to be updated. A max-age value of 5184000 (60 days) is recommended for default use. See RFC 7469 for more details. AccessControlAllowOrigin Sets the value of the Access-Control-Allow-Origin HTTP header. The value should either be a URI or the special value *, indicating that all cross-origin requests are allowed. Extra authentication options are available when SSL and PCRE are compiled in and SSL client certificates are used. SSL client certificates must be enabled explicitly via the SSLAuthentication option in httpd.conf(5). SSLSubjectMatch The argument should be a regular expression that is matched against the `distinguished name' field of the subject mentioned on the SSL client certificate. The contents of this field is also available through the SSL_CLIENT_S_DN environment variable. Access is only granted if this information is available and matches the data in the certificate. Multiple SSLSubjectMatch directives are allowed, in which case access is granted if any of these match the certificate subject. SSLIssuerMatch A regular expression that is matched against the issuer information of the client certificate. Usage is similar to the SSLSubjectMatch directive. Module Configuration Directives Optional modules can be enabled for the webserver. In this case, extra configuration directives for the specific modules are available as well. These settings will be silently ingored when the relevant webserver module is not loaded. mod_ldap If LDAP support is enabled, then special directives can be used to enable password checks through a remote authentication server. LdapHost Set the hostname or IP address of the LDAP authentication server. LdapURI Set the LDAP authentication server name in URL format, starting with ldap:// or ldaps://. Setting LdapURI overrides the LdapHost setting - and vice versa. LdapAttr Set username attribute. The LDAP server will be queried for a matching `$LdapAttr=$username' entry. The default is uid. LdapDN Set the base DN (directory name) for the LDAP query. Setting a DN is mandatory. LdapVersion Protocol version to use. The default is 3, but for older servers one may want to use 2 instead. LdapGroups List of groups of which the user should be a member. If the username is found in any of these groups, then access will be granted. If no groups are specified, then a matching username and password will be enough to be granted access. LdapFilter Using a custom filter is the most flexible way to select a user. This allows full LDAP filter expressions to be used. In this expression %u may be used (more than once) to match the user to be authenticated. A filter rule may be used in combination with LdapAttr and LdapGroups for convenience. But when %u is used in this expression, there is no need to set attr or groups.

EXAMPLES

An .xsconf file in a directory tree that can only be accesses by authenticated users from the local network, might look something like this, [*.shtml] Restrict 131.155.140.0/23 MimeType text/html Charset utf-8 Execute /usr/local/bin/php-cgi AuthFile /wwwsys/xsauth

SEE ALSO

httpd(1), httpd.conf(5), xsauth(5), xsredir(5), xsscripts(5) The project homepage: http://www.xs-httpd.org/ xs-httpd/3.5 February 10, 2007 xs-httpd/3.5

Search: Section: