diff options
author | Joshua Slive <slive@apache.org> | 2002-03-09 18:31:00 +0000 |
---|---|---|
committer | Joshua Slive <slive@apache.org> | 2002-03-09 18:31:00 +0000 |
commit | adad84a7cebea4c2cc818a7e71365e49e9b89723 (patch) | |
tree | 0313949846c8b712b22a0147f76a8c831c2c4a8d /docs/manual/mod | |
parent | 30a517c723b2b13a8c2a6d16008cc947deb95d3d (diff) | |
download | httpd-adad84a7cebea4c2cc818a7e71365e49e9b89723.tar.gz |
New xml versions.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93814 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod')
-rw-r--r-- | docs/manual/mod/mod_isapi.xml | 271 | ||||
-rw-r--r-- | docs/manual/mod/mod_mime_magic.xml | 304 | ||||
-rw-r--r-- | docs/manual/mod/mod_negotiation.xml | 243 |
3 files changed, 818 insertions, 0 deletions
diff --git a/docs/manual/mod/mod_isapi.xml b/docs/manual/mod/mod_isapi.xml new file mode 100644 index 0000000000..c64cbd0b18 --- /dev/null +++ b/docs/manual/mod/mod_isapi.xml @@ -0,0 +1,271 @@ +<?xml version="1.0"?> +<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> +<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?> +<modulesynopsis> + +<name>mod_isapi</name> +<description>ISAPI Extensions within Apache for Windows</description> +<status>Base</status> +<sourcefile>mod_isapi.c</sourcefile> +<identifier>isapi_module</identifier> +<compatibility>Win32 only</compatibility> + +<summary> + <p>This module implements the Internet Server extension API. It + allows Internet Server extensions (<em>e.g.</em> ISAPI .dll + modules) to be served by Apache for Windows, subject to the + noted restrictions.</p> + + <p>ISAPI extension modules (.dll files) are written by third + parties. The Apache Group does not author these modules, so we + provide no support for them. Please contact the ISAPI's author + directly if you are experiencing problems running their ISAPI + extention. <strong>Please <em>do not</em> post such problems to + Apache's lists or bug reporting pages.</strong></p> +</summary> + +<section><title>Usage</title> <p>In the server configuration file, use +the <directive module="mod_mime">AddHandler</directive> directive to +associate ISAPI files with the <code>isapi-isa</code> handler, and map +it to the with their file extensions. To enable any .dll file to be +processed as an ISAPI extention, edit the httpd.conf file and add the +following line:</p> +<example> + AddHandler isapi-isa .dll +</example> + + <p>There is no capability within the Apache server to leave a + requested module loaded. However, you may preload and keep a + specific module loaded by using the following syntax in your + httpd.conf:</p> +<example> + ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll +</example> + + <p>Whether or not you have preloaded an ISAPI extension, all + ISAPI extensions are governed by the same permissions and + restrictions as CGI scripts. That is, <code>Options + ExecCGI</code> must be set for the directory that contains the + ISAPI .dll file.</p> + + <p>Review the <a href="#notes">Additional Notes</a> and the <a + href="#journal">Programmer's Journal</a> for additional details + and clarification of the specific ISAPI support offered by + mod_isapi.</p> +</section> + +<section id="notes"><title>Additional Notes</title> + + <p>Apache's ISAPI implementation conforms to all of the ISAPI + 2.0 specification, except for some "Microsoft-specific" + extensions dealing with asynchronous I/O. Apache's I/O model + does not allow asynchronous reading and writing in a manner + that the ISAPI could access. If an ISA tries to access + unsupported features, including async I/O, a message is placed + in the error log to help with debugging. Since these messages + can become a flood, the directive <code>ISAPILogNotSupported + Off</code> exists to quiet this noise.</p> + + <p>Some servers, like Microsoft IIS, load the ISAPI extension + into the server and keep it loaded until memory usage is too + high, or unless configuration options are specified. Apache + currently loads and unloads the ISAPI extension each time it is + requested, unless the ISAPICacheFile directive is specified. + This is inefficient, but Apache's memory model makes this the + most effective method. Many ISAPI modules are subtly + incompatible with the Apache server, and unloading these + modules helps to ensure the stability of the server.</p> + + <p>Also, remember that while Apache supports ISAPI Extensions, + it <strong>does not support ISAPI Filters.</strong> Support for + filters may be added at a later date, but no support is planned + at this time.</p> +</section> + +<section id="journal"><title>Programmer's Journal</title> + + <p>If you are programming Apache 2.0 <module>mod_isapi</module> + modules, you must limit your calls to ServerSupportFunction to the + following directives:</p> + + <dl> + <dt>HSE_REQ_SEND_URL_REDIRECT_RESP</dt> + + <dd>Redirect the user to another location.<br /> + This must be a fully qualified URL (e.g. + http://server/location).</dd> + + <dt>HSE_REQ_SEND_URL</dt> + + <dd>Redirect the user to another location.<br /> + This cannot be a fully qualified URL, you are not allowed to + pass the protocol or a server name (e.g. simply + /location).<br /> + This redirection is handled by the server, not the + browser.<br /> + <strong>Warning:</strong> in their recent documentation, + Microsoft appears to have abandoned the distinction between + the two HSE_REQ_SEND_URL functions. Apache continues to treat + them as two distinct functions with different requirements + and behaviors.</dd> + + <dt>HSE_REQ_SEND_RESPONSE_HEADER</dt> + + <dd>Apache accepts a response body following the header if it + follows the blank line (two consecutive newlines) in the + headers string argument. This body cannot contain NULLs, + since the headers argument is NULL terminated.</dd> + + <dt>HSE_REQ_DONE_WITH_SESSION</dt> + + <dd>Apache considers this a no-op, since the session will be + finished when the ISAPI returns from processing.</dd> + + <dt>HSE_REQ_MAP_URL_TO_PATH</dt> + + <dd>Apache will translate a virtual name to a physical + name.</dd> + + <dt>HSE_APPEND_LOG_PARAMETER</dt> + + <dd> + This logged message may be captured in any of the following + logs: + + <ul> + <li>in the \"%{isapi-parameter}n\" component in a + CustomLog directive</li> + + <li>in the %q log component with the + ISAPIAppendLogToQuery On directive</li> + + <li>in the error log with the ISAPIAppendLogToErrors On + directive</li> + </ul> + The first option, the %{isapi-parameter}n component, is + always available and prefered. + </dd> + + <dt>HSE_REQ_IS_KEEP_CONN</dt> + + <dd>Will return the negotiated Keep-Alive status.</dd> + + <dt>HSE_REQ_SEND_RESPONSE_HEADER_EX</dt> + + <dd>Will behave as documented, although the fKeepConn flag is + ignored.</dd> + + <dt>HSE_REQ_IS_CONNECTED</dt> + + <dd>Will report false if the request has been aborted.</dd> + </dl> + + <p>Apache returns FALSE to any unsupported call to + ServerSupportFunction, and sets the GetLastError value to + ERROR_INVALID_PARAMETER.</p> + + <p>ReadClient retrieves the request body exceeding the initial + buffer (defined by ISAPIReadAheadBuffer). Based on the + ISAPIReadAheadBuffer setting (number of bytes to buffer prior + to calling the ISAPI handler) shorter requests are sent + complete to the extension when it is invoked. If the request is + longer, the ISAPI extension must use ReadClient to retrieve the + remaining request body.</p> + + <p>WriteClient is supported, but only with the HSE_IO_SYNC flag + or no option flag (value of 0). Any other WriteClient request + will be rejected with a return value of FALSE, and a + GetLastError value of ERROR_INVALID_PARAMETER.</p> + + <p>GetServerVariable is supported, although extended server + variables do not exist (as defined by other servers.) All the + usual Apache CGI environment variables are available from + GetServerVariable, as well as the ALL_HTTP and ALL_RAW + values.</p> + + <p>Apache 2.0 <module>mod_isapi</module> supports additional + features introduced in later versions of the ISAPI specification, + as well as limited emulation of async I/O and the TransmitFile + semantics. Apache also supports preloading ISAPI .dlls for + performance, neither of which were not available under Apache 1.3 + mod_isapi.</p> +</section> + +<directivesynopsis> +<name>ISAPIFileChache</name> +<description>ISAPI .dll files to be loaded at startup</description> +<syntax>ISAPIFileCache <em>file-path</em> [<em>file-path</em>] ...</syntax> +<contextlist><context>server config</context></contextlist> + +<usage> + <p>Specifies a space-separated list of file names to be loaded + when the Apache server is launched, and remain loaded until the + server is shut down. This directive may be repeated for every + ISAPI .dll file desired. The full path name of each file should + be specified.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>ISAPIReadAheadBuffer</name> +<description>Size of the Read Ahead Buffer sent to ISAPI +extensions</description> +<syntax>ISAPIReadAheadBuffer <em>size</em></syntax> +<default>ISAPIReadAheadBuffer 49152</default> +<contextlist><context>server config</context></contextlist> + +<usage> + <p>Defines the maximum size of the Read Ahead Buffer sent to + ISAPI extensions when they are initially invoked. All remaining + data must be retrieved using the ReadClient callback; some + ISAPI extensions may not support the ReadClient function. Refer + questions to the ISAPI extension's author.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>ISAPILogNotSupported</name> +<description>Log unsupported feature requests from ISAPI +extensions</description> +<syntax>ISAPILogNotSupported on|off</syntax> +<default>ISAPILogNotSupported on</default> +<contextlist><context>server config</context></contextlist> + +<usage> + <p>Logs all requests for unsupported features from ISAPI + extensions in the server error log. While this should be turned + off once all desired ISAPI modules are functioning, it defaults + to on to help administrators track down problems.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>ISAPIAppendLogToErrors</name> +<description>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI +extensions to the error log</description> +<syntax>ISAPIAppendLogToErrors on|off</syntax> +<default>ISAPIAppendLogToErrors off</default> +<contextlist><context>server config</context></contextlist> + +<usage> + <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extensions to the server error log.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>ISAPIAppendLogToQuery</name> +<description>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI +extensions to the query field</description> +<syntax>ISAPIAppendLogToQuery on|off</syntax> +<default>ISAPIAppendLogToQuery off</default> +<contextlist><context>server config</context></contextlist> + +<usage> + <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extensions to the query field (appended to the CustomLog %q + component).</p> +</usage> +</directivesynopsis> + +</modulesynopsis>
\ No newline at end of file diff --git a/docs/manual/mod/mod_mime_magic.xml b/docs/manual/mod/mod_mime_magic.xml new file mode 100644 index 0000000000..18f22158d1 --- /dev/null +++ b/docs/manual/mod/mod_mime_magic.xml @@ -0,0 +1,304 @@ +<?xml version="1.0"?> +<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> +<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?> +<modulesynopsis> + +<name>mod_mime_magic</name> +<description>Determines the MIME type of a file + by looking at a few bytes of its contents</description> +<status>Extension</status> +<sourcefile>mod_mime_magic.c</sourcefile> +<identifier>mime_magic_module</identifier> + +<summary> + <p>This module determines the MIME type of files in the same + way the Unix file(1) command works: it looks at the first few + bytes of the file. It is intended as a "second line of defense" + for cases that <module>mod_mime</module> can't + resolve. To assure that mod_mime gets first try at determining + a file's MIME type, be sure to list mod_mime_magic + <strong>before</strong> mod_mime in the configuration.</p> + + <p>This module is derived from a free version of the + <code>file(1)</code> command for Unix, which uses "magic + numbers" and other hints from a file's contents to figure out + what the contents are. This module is active only if the magic + file is specified by the <directive module="mod_mime_magic" + >MimeMagicFile</directive> directive.</p> +</summary> + +<section><title>Format of the Magic File</title> + + <p>The contents of the file are plain ASCII text in 4-5 + columns. Blank lines are allowed but ignored. Commented lines + use a hash mark "#". The remaining lines are parsed for the + following columns:</p> + + <table border="1"> + <tr valign="top"> + <th>Column</th> + + <th>Description</th> + </tr> + + <tr valign="top"> + <td>1</td> + + <td>byte number to begin checking from<br /> + ">" indicates a dependency upon the previous non-">" + line</td> + </tr> + + <tr valign="top"> + <td>2</td> + + <td> + type of data to match + + <table border="1"> + <tr> + <td>byte</td> + + <td>single character</td> + </tr> + + <tr> + <td>short</td> + + <td>machine-order 16-bit integer</td> + </tr> + + <tr> + <td>long</td> + + <td>machine-order 32-bit integer</td> + </tr> + + <tr> + <td>string</td> + + <td>arbitrary-length string</td> + </tr> + + <tr> + <td>date</td> + + <td>long integer date (seconds since Unix + epoch/1970)</td> + </tr> + + <tr> + <td>beshort</td> + + <td>big-endian 16-bit integer</td> + </tr> + + <tr> + <td>belong</td> + + <td>big-endian 32-bit integer</td> + </tr> + + <tr> + <td>bedate</td> + + <td>big-endian 32-bit integer date</td> + </tr> + + <tr> + <td>leshort</td> + + <td>little-endian 16-bit integer</td> + </tr> + + <tr> + <td>lelong</td> + + <td>little-endian 32-bit integer</td> + </tr> + + <tr> + <td>ledate</td> + + <td>little-endian 32-bit integer date</td> + </tr> + </table> + </td> + </tr> + + <tr valign="top"> + <td>3</td> + + <td>contents of data to match</td> + </tr> + + <tr valign="top"> + <td>4</td> + + <td>MIME type if matched</td> + </tr> + + <tr valign="top"> + <td>5</td> + + <td>MIME encoding if matched (optional)</td> + </tr> + </table> + + <p>For example, the following magic file lines would recognize + some audio formats.</p> +<example> +<pre> +# Sun/NeXT audio data +0 string .snd +>12 belong 1 audio/basic +>12 belong 2 audio/basic +>12 belong 3 audio/basic +>12 belong 4 audio/basic +>12 belong 5 audio/basic +>12 belong 6 audio/basic +>12 belong 7 audio/basic +>12 belong 23 audio/x-adpcm +</pre> +</example> + <p>Or these would recognize the difference between "*.doc" files + containing Microsoft Word or FrameMaker documents. (These are + incompatible file formats which use the same file suffix.)</p> +<example> +<pre> +# Frame +0 string \<MakerFile application/x-frame +0 string \<MIFFile application/x-frame +0 string \<MakerDictionary application/x-frame +0 string \<MakerScreenFon application/x-frame +0 string \<MML application/x-frame +0 string \<Book application/x-frame +0 string \<Maker application/x-frame + +# MS-Word +0 string \376\067\0\043 application/msword +0 string \320\317\021\340\241\261 application/msword +0 string \333\245-\0\0\0 application/msword +</pre> +</example> + <p>An optional MIME encoding can be included as a fifth column. + For example, this can recognize gzipped files and set the + encoding for them.</p> +<example> +<pre> +# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) +0 string \037\213 application/octet-stream x-gzip +</pre> +</example> +</section> + +<section><title>Performance Issues</title> + <p>This module is not for every system. If your system is barely + keeping up with its load or if you're performing a web server + benchmark, you may not want to enable this because the + processing is not free.</p> + + <p>However, an effort was made to improve the performance of + the original file(1) code to make it fit in a busy web server. + It was designed for a server where there are thousands of users + who publish their own documents. This is probably very common + on intranets. Many times, it's helpful if the server can make + more intelligent decisions about a file's contents than the + file name allows ...even if just to reduce the "why doesn't my + page work" calls when users improperly name their own files. + You have to decide if the extra work suits your + environment.</p> + + <p>When compiling an Apache server, this module should be at or + near the top of the list of modules in the Configuration file. + The modules are listed in increasing priority so that will mean + this one is used only as a last resort, just like it was + designed to.</p> + +</section> + +<section id="notes"><title>Notes</title> + + <p>The following notes apply to the mod_mime_magic module and are + included here for compliance with contributors' copyright + restrictions that require their acknowledgment. </p> +<pre> +/* + * mod_mime_magic: MIME type lookup via file magic numbers + * Copyright (c) 1996-1997 Cisco Systems, Inc. + * + * This software was submitted by Cisco Systems to the Apache Group in July + * 1997. Future revisions and derivatives of this source code must + * acknowledge Cisco Systems as the original contributor of this module. + * All other licensing and usage conditions are those of the Apache Group. + * + * Some of this code is derived from the free version of the file command + * originally posted to comp.sources.unix. Copyright info for that program + * is included below as required. + * --------------------------------------------------------------------------- + * - Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone and + * Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on any + * computer system, and to alter it and redistribute it freely, subject to + * the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, credits + * must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users ever read + * sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + * ------------------------------------------------------------------------- + * + * For compliance with Mr Darwin's terms: this has been very significantly + * modified from the free "file" command. + * - all-in-one file for compilation convenience when moving from one + * version of Apache to the next. + * - Memory allocation is done through the Apache API's pool structure. + * - All functions have had necessary Apache API request or server + * structures passed to them where necessary to call other Apache API + * routines. (<em>i.e.</em>, usually for logging, files, or memory allocation in + * itself or a called function.) + * - struct magic has been converted from an array to a single-ended linked + * list because it only grows one record at a time, it's only accessed + * sequentially, and the Apache API has no equivalent of realloc(). + * - Functions have been changed to get their parameters from the server + * configuration instead of globals. (It should be reentrant now but has + * not been tested in a threaded environment.) + * - Places where it used to print results to stdout now saves them in a + * list where they're used to set the MIME type in the Apache request + * record. + * - Command-line flags have been removed since they will never be used here. + * + */ +</pre> +</section> + +<directivesynopsis> +<name>MimeMagicFile</name> +<description>Enable MIME-type determination based on file contents +using the specified magic file</description> +<syntax>MimeMagicFile <em>file-path</em></syntax> +<contextlist><context>server config</context> +<context>virtual host</context></contextlist> + +<usage> + <p>The <directive>MimeMagicFile</directive> directive can be used to + enable this module, the default file is distributed at + <code>conf/magic</code>. Non-rooted paths are relative to the + ServerRoot. Virtual hosts will use the same file as the main + server unless a more specific setting is used, in which case + the more specific setting overrides the main server's file.</p> +</usage> +</directivesynopsis> +</modulesynopsis> + diff --git a/docs/manual/mod/mod_negotiation.xml b/docs/manual/mod/mod_negotiation.xml new file mode 100644 index 0000000000..12904441a8 --- /dev/null +++ b/docs/manual/mod/mod_negotiation.xml @@ -0,0 +1,243 @@ +<?xml version="1.0"?> +<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> +<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?> +<modulesynopsis> + +<name>mod_negotiation</name> +<description>Provides for <a + href="../content-negotiation.html">content negotiation</a></description> +<status>Base</status> +<sourcefile>mod_negotiation.c</sourcefile> +<identifier>negotiation_module</identifier> + +<summary> + <p>Content negotiation, or more accurately content selection, is + the selection of the document that best matches the clients + capabilities, from one of several available documents. There + are two implementations of this.</p> + + <ul> + <li>A type map (a file with the handler + <code>type-map</code>) which explicitly lists the files + containing the variants.</li> + + <li>A MultiViews search (enabled by the MultiViews <directive + module="core.html">Options</directive>, where the server does an + implicit filename pattern match, and choose from amongst the + results.</li> + </ul> +</summary> + +<seealso><directive module="mod_mime">DefaultLangauge</directive></seealso> +<seealso><directive module="mod_mime">AddEncoding</directive></seealso> +<seealso><directive module="mod_mime">AddLanguage</directive></seealso> +<seealso><directive module="mod_mime">AddType</directive></seealso> + +<section><title>Type maps</title> + <p>A type map has the same format as RFC822 mail headers. It + contains document descriptions separated by blank lines, with + lines beginning with a hash character ('#') treated as + comments. A document description consists of several header + records; records may be continued on multiple lines if the + continuation lines start with spaces. The leading space will be + deleted and the lines concatenated. A header record consists of + a keyword name, which always ends in a colon, followed by a + value. Whitespace is allowed between the header name and value, + and between the tokens of value. The headers allowed are: </p> + + <dl> + <dt>Content-Encoding:</dt> + + <dd>The encoding of the file. Apache only recognizes + encodings that are defined by an <directive + module="mod_mime">AddEncoding</directive> directive. + This normally includes the encodings <code>x-compress</code> + for compress'd files, and <code>x-gzip</code> for gzip'd + files. The <code>x-</code> prefix is ignored for encoding + comparisons.</dd> + + <dt>Content-Language:</dt> + + <dd>The language of the variant, as an Internet standard + language tag (RFC 1766). An example is <code>en</code>, + meaning English.</dd> + + <dt>Content-Length:</dt> + + <dd>The length of the file, in bytes. If this header is not + present, then the actual length of the file is used.</dd> + + <dt>Content-Type:</dt> + + <dd> + The MIME media type of the document, with optional + parameters. Parameters are separated from the media type + and from one another by a semi-colon, with a syntax of + <code>name=value</code>. Common parameters include: + + <dl> + <dt>level</dt> + + <dd>an integer specifying the version of the media type. + For <code>text/html</code> this defaults to 2, otherwise + 0.</dd> + + <dt>qs</dt> + + <dd>a floating-point number with a value in the range 0.0 + to 1.0, indicating the relative 'quality' of this variant + compared to the other available variants, independent of + the client's capabilities. For example, a jpeg file is + usually of higher source quality than an ascii file if it + is attempting to represent a photograph. However, if the + resource being represented is ascii art, then an ascii + file would have a higher source quality than a jpeg file. + All qs values are therefore specific to a given + resource.</dd> + </dl> + Example: + + <blockquote> + <code>Content-Type: image/jpeg; qs=0.8</code> + </blockquote> + </dd> + + <dt>URI:</dt> + + <dd>The path to the file containing this variant, relative to + the map file.</dd> + </dl> +</section> + +<section><title>MultiViews</title> + + <p>A MultiViews search is enabled by the MultiViews <directive + module="core">Options</directive>. If the server receives a + request for <code>/some/dir/foo</code> and + <code>/some/dir/foo</code> does <em>not</em> exist, then the + server reads the directory looking for all files named + <code>foo.*</code>, and effectively fakes up a type map which + names all those files, assigning them the same media types and + content-encodings it would have if the client had asked for one + of them by name. It then chooses the best match to the client's + requirements, and returns that document.</p> +</section> + +<directivesynopsis> +<name>CacheNegotiatedDocs</name> +<description>Allows content-negotiated documents to be +cached by proxy servers</description> +<syntax>CacheNegotiatedDocs on|off</syntax> +<default>CacheNegotiatedDocs off</default> +<contextlist><context>server config</context></contextlist> +<compatibility>The syntax changed in version 2.0.</compatibility> + +<usage> + <p>If set, this directive allows content-negotiated documents + to be cached by proxy servers. This could mean that clients + behind those proxys could retrieve versions of the documents + that are not the best match for their abilities, but it will + make caching more efficient.</p> + + <p>This directive only applies to requests which come from + HTTP/1.0 browsers. HTTP/1.1 provides much better control over + the caching of negotiated documents, and this directive has no + effect in responses to HTTP/1.1 requests.</p> + + <p>Prior to version 2.0, + <directive>CacheNegotiatedDocs</directive> did not take an + argument; it was turned on by the presence of the directive by + itself.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>ForceLangaugePriority</name> +<description>Action to take if a single acceptable document is not +found</description> +<syntax>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</syntax> +<default>ForceLangaugePriority None</default> +<contextlist><context>server config</context> +<context>virtual host</context> +<context>directory</context> +<context>.htaccess</context> +</contextlist> +<override>FileInfo</override> +<compatibility>Available in version 2.0.30 and later</compatibility> + +<usage> + <p>The <directive>ForceLanguagePriority</directive> directive uses + the given <directive + module="mod_negotiation">LanguagePriority</directive> to satisfy + negotation where the server could otherwise not return a single + matching document.</p> + + <p><code>ForceLanguagePriority Prefer</code> uses + <code>LanguagePriority</code> to serve a one valid result, rather + than returning an HTTP result 300 (MULTIPLE CHOICES) when there + are several equally valid choices. If the directives below were + given, and the user's Accept-Language header assigned en and de + each as quality .500 (equally acceptable) then then first matching + variant, en, will be served.</p> + +<example> + LanguagePriority en fr de<br /> + ForceLanguagePriority Prefer +</example> + + <p><code>ForceLanguagePriority Fallback</code> uses + <code>LanguagePriority</code> to serve a valid result, rather than + returning an HTTP result 406 (NOT ACCEPTABLE). If the directives + below were given, and the user's Accept-Language only permitted an + es langauge response, but such a variant isn't found, then the + first variant from the LanguagePriority list below will be + served.</p> + +<example> + LanguagePriority en fr de<br /> + ForceLanguagePriority Fallback +</example> + + <p>Both options, Prefer and Fallback, may be specified, so either the + first matching variant from LanguagePriority will be served if more + that one variant is acceptable, or first available document will be + served if none of the variants matched the client's acceptable list of + languages.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>LanguagePriority</name> +<description>The precendence of language variants for cases where +the client does not express a preference</description> +<syntax>LanguagePriority <em>MIME-lang</em> [<em>MIME-lang</em>] ...</syntax> +<contextlist><context>server config</context> +<context>virtual host</context> +<context>directory</context> +<context>.htaccess</context> +</contextlist> +<override>FileInfo</override> + +<usage> + <p>The <directive>LanguagePriority</directive> sets the precedence + of language variants for the case where the client does not + express a preference, when handling a MultiViews request. The list + of <em>MIME-lang</em> are in order of decreasing preference. + Example:</p> + +<example>LanguagePriority en fr de</example> + + <p>For a request for <code>foo.html</code>, where + <code>foo.html.fr</code> and <code>foo.html.de</code> both + existed, but the browser did not express a language preference, + then <code>foo.html.fr</code> would be returned.</p> + + <p>Note that this directive only has an effect if a 'best' + language cannot be determined by any other means or the <directive + module="mod_negotiation">ForceLanguagePriority</directive> directive + is not <code>None</code>. Correctly implemented HTTP/1.1 requests + will mean this directive has no effect.</p> +</usage> +</directivesynopsis> + +</modulesynopsis>
\ No newline at end of file |