mod_mime.html revision 4e59fdbc3e0d0c17a28469c9efbc0a071622d5ec
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<HTML>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<HEAD>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<TITLE>Apache module mod_mime</TITLE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</HEAD>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<BODY
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster BGCOLOR="#FFFFFF"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster TEXT="#000000"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LINK="#0000FF"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VLINK="#000080"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ALINK="#FF0000"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<!--#include virtual="header.html" -->
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H1 ALIGN="CENTER">Module mod_mime</H1>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<p>This module provides for determining the types of files
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfrom the filename and for association of handlers with files.</p>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P><A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHREF="module-dict.html#Status"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterREL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Status:</STRONG></A> Base
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHREF="module-dict.html#SourceFile"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterREL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Source File:</STRONG></A> mod_mime.c
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHREF="module-dict.html#ModuleIdentifier"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterREL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Module Identifier:</STRONG></A> mime_module
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2>Summary</H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThis module is used to determine various bits of "meta information"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterabout documents. This information relates to the content of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdocument and is returned to the browser or used in content-negotiation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterwithin the server. In addition, a "handler" can be set for a document,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterwhich determines how the document will be processed within the server.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThe directives <a href="#addcharset">AddCharset</a>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A HREF="#addencoding">AddEncoding</A>, <A HREF="#addhandler">AddHandler</A>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A HREF="#addlanguage">AddLanguage</A> and <A HREF="#addtype">AddType</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterare all used to map file extensions onto the meta-information for that
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfile. Respectively they set the character set, content-encoding, handler,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercontent-language, and MIME-type (content-type) of documents. The
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdirective <A HREF="#typesconfig">TypesConfig</A> is used to specify a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfile which also maps extensions onto MIME types. The directives <A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHREF="#forcetype">ForceType</A> and <A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHREF="#sethandler">SetHandler</A> are used to associated all the files
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterin a given location (<EM>e.g.</EM>, a particular directory) onto a particular
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterMIME type or handler.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterNote that changing the type or encoding of a file does not change the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostervalue of the <CODE>Last-Modified</CODE> header. Thus, previously cached
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercopies may still be used by a client or proxy, with the previous headers.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2>Directives</H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<UL>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<li><a href="#addcharset">AddCharset</a></li>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#addencoding">AddEncoding</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#addhandler">AddHandler</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#addlanguage">AddLanguage</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#addtype">AddType</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#defaultlanguage">DefaultLanguage</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#forcetype">ForceType</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#removehandler">RemoveHandler</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#sethandler">SetHandler</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<LI><A HREF="#typesconfig">TypesConfig</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</UL>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<p>See also: <a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhref="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a>.</p>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2><A NAME="multipleext">Files with Multiple Extensions</A></H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterFiles can have more than one extension, and the order of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextensions is <EM>normally</EM> irrelevant. For example, if the file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<CODE>welcome.html.fr</CODE> maps onto content type text/html and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlanguage French then the file <CODE>welcome.fr.html</CODE> will map
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteronto exactly the same information. The only exception to this is if an
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextension is given which Apache does not know how to handle. In this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercase it will "forget" about any information it obtained from
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextensions to the left of the unknown extension. So, for example, if
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthe extensions fr and html are mapped to the appropriate language and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostertype but extension xxx is not assigned to anything, then the file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<CODE>welcome.fr.xxx.html</CODE> will be associated with content-type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostertext/html but <EM>no</EM> language.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterIf more than one extension is given which maps onto the same type of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostermeta-information, then the one to the right will be used. For example,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterif ".gif" maps to the MIME-type image/gif and ".html" maps to the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterMIME-type text/html, then the file <CODE>welcome.gif.html</CODE> will
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterbe associated with the MIME-type "text/html".
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCare should be taken when a file with multiple extensions gets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterassociated with both a MIME-type and a handler. This will usually
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterresult in the request being by the module associated with the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhandler. For example, if the <CODE>.imap</CODE> extension is mapped to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthe handler "imap-file" (from mod_imap) and the <CODE>.html</CODE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextension is mapped to the MIME-type "text/html", then the file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<CODE>world.imap.html</CODE> will be associated with both the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster"imap-file" handler and "text/html" MIME-type. When it is processed,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthe "imap-file" handler will be used, and so it will be treated as a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostermod_imap imagemap file.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<HR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2><A NAME="addcharset">AddCharset</A> directive</H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A HREF="directive-dict.html#Syntax" REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Syntax:</STRONG></A> AddCharset <i>charset extension
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster [extension...]</i><br>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A HREF="directive-dict.html#Context" REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Override"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Override:</STRONG></A> FileInfo<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Status"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Status:</STRONG></A> Base<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Module"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Module:</STRONG></A> mod_mime
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThe AddCharset directive maps the given filename extensions to the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterspecified content charset. <i>charset</i> is the MIME charset
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterparameter of filenames containing <i>extension</i>. This mapping is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteradded to any already in force, overriding any mappings that already
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterexist for the same <i>extension</i>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterExample:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<pre>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AddLanguage ja .ja
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AddCharset EUC-JP .euc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AddCharset ISO-2022-JP .jis
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AddCharset SHIFT_JIS .sjis
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</pre>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThen the document <CODE>xxxx.ja.jis</CODE> will be treated as being a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterJapanese document whose charset is ISO-2022-JP (as will the document
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<CODE>xxxx.jis.ja</CODE>). The AddCharset directive is useful for both
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterto inform the client about the character encoding of the document so
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthat the document can be interpreted and displayed appropriately, and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfor <A HREF="/content-negotiation.html">content negotiation</A>, where
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthe server returns one from several documents based on the client's
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercharset preference.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<STRONG>See also</STRONG>: <A HREF="mod_negotiation.html">mod_negotiation</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<hr>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2><A NAME="addencoding">AddEncoding</A> directive</H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Syntax"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Syntax:</STRONG></A> AddEncoding <EM>MIME-enc extension extension...</EM><BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Context"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Override"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Override:</STRONG></A> FileInfo<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Status"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Status:</STRONG></A> Base<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Module"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Module:</STRONG></A> mod_mime<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThe AddEncoding directive maps the given filename extensions to the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterspecified encoding type. <EM>MIME-enc</EM> is the MIME encoding to use
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfor documents containing the <EM>extension</EM>. This mapping is added
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterto any already in force, overriding any mappings that already exist
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfor the same <EM>extension</EM>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterExample:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<BLOCKQUOTE><CODE> AddEncoding x-gzip gz<BR> AddEncoding x-compress Z
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster</CODE></BLOCKQUOTE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterThis will cause filenames containing the .gz extension to be marked as
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterencoded using the x-gzip encoding, and filenames containing the .Z
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextension to be marked as encoded with x-compress.<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOld clients expect <CODE>x-gzip</CODE> and <CODE>x-compress</CODE>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterhowever the standard dictates that they're equivalent to <CODE>gzip</CODE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterand <CODE>compress</CODE> respectively. Apache does content encoding
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostercomparisons by ignoring any leading <CODE>x-</CODE>. When responding
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterwith an encoding Apache will use whatever form (<EM>i.e.</EM>, <CODE>x-foo</CODE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteror <CODE>foo</CODE>) the client requested. If the client didn't
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterspecifically request a particular form Apache will use the form given by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterthe <CODE>AddEncoding</CODE> directive. To make this long story short,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteryou should always use <CODE>x-gzip</CODE> and <CODE>x-compress</CODE>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterfor these two specific encodings. More recent encodings, such as
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<CODE>deflate</CODE> should be specified without the <CODE>x-</CODE>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostermultiple extensions</A>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<P><HR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<H2><A NAME="addhandler">AddHandler</A> directive</H2>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Syntax"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Syntax:</STRONG></A> AddHandler <EM>handler-name extension extension...</EM><BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Context"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Override"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Override:</STRONG></A> FileInfo<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Status"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster REL="Help"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster><STRONG>Status:</STRONG></A> Base<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster<A
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
<P>AddHandler maps the filename extensions <EM>extension</EM> to the
<A HREF="/handler.html">handler</A> <EM>handler-name</EM>. This
mapping is added to any already in force, overriding any mappings that
already exist for the same <EM>extension</EM>.
For example, to activate CGI scripts
with the file extension "<CODE>.cgi</CODE>", you might use:
<PRE>
AddHandler cgi-script cgi
</PRE>
<P>Once that has been put into your srm.conf or httpd.conf file, any
file containing the "<CODE>.cgi</CODE>" extension will be treated as a
CGI program.</P>
<P>
<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
multiple extensions</A>
<HR>
<H2><A NAME="addlanguage">AddLanguage</A> directive</H2>
<!--%plaintext &lt;?INDEX {\tt AddLanguage} directive&gt; -->
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> AddLanguage <EM>MIME-lang extension extension...</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
<A
HREF="directive-dict.html#Override"
REL="Help"
><STRONG>Override:</STRONG></A> FileInfo<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
<P>
The AddLanguage directive maps the given filename extensions to the
specified content language. <EM>MIME-lang</EM> is the MIME language of
filenames containing <EM>extension</EM>. This mapping is added to any
already in force, overriding any mappings that already exist for the
same <EM>extension</EM>.
</P>
<P>
Example: <BLOCKQUOTE><CODE>
AddEncoding x-compress Z<BR> AddLanguage en .en<BR> AddLanguage fr
.fr<BR> </CODE></BLOCKQUOTE>
</P>
<P>
Then the document <CODE>xxxx.en.Z</CODE> will be treated as being a
compressed English document (as will the document
<CODE>xxxx.Z.en</CODE>). Although the content language is reported to
the client, the browser is unlikely to use this information. The
AddLanguage directive is more useful for
<A HREF="/content-negotiation.html">content negotiation</A>, where
the server returns one from several documents based on the client's
language preference.
</P>
<P>
If multiple language assignments are made for the same extension,
the last one encountered is the one that is used. That is, for the
case of:
</P>
<PRE>
AddLanguage en .en
AddLanguage en-uk .en
AddLanguage en-us .en
</PRE>
<P>
documents with the extension "<CODE>.en</CODE>" would be treated as
being "<CODE>en-us</CODE>".
</P>
<P>
<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
multiple extensions</A>
<BR>
<STRONG>See also</STRONG>: <A
HREF="/mod_negotiation.html">mod_negotiation</A>
</P>
<HR>
<H2><A NAME="addtype">AddType</A> directive</H2>
<!--%plaintext &lt;?INDEX {\tt AddType} directive&gt; -->
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> AddType <EM>MIME-type extension extension...</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
<A
HREF="directive-dict.html#Override"
REL="Help"
><STRONG>Override:</STRONG></A> FileInfo<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime<P>
The AddType directive maps the given filename extensions onto the
specified content type. <EM>MIME-enc</EM> is the MIME type to use for
filenames containing <EM>extension</EM>. This mapping is added to any
already in force, overriding any mappings that already exist for the
same <EM>extension</EM>. This directive can be used to add mappings
not listed in the MIME types file (see the <CODE><A
HREF="#typesconfig">TypesConfig</A></CODE> directive).
Example:
<BLOCKQUOTE><CODE>
AddType image/gif GIF
</CODE></BLOCKQUOTE>
It is recommended that new MIME types be added using the AddType directive
rather than changing the <A HREF="#typesconfig">TypesConfig</A> file.<P>
Note that, unlike the NCSA httpd, this directive cannot be used to set the
type of particular files.<P>
<P>
<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
multiple extensions</A>
<HR>
<H2><A NAME="defaultlanguage">DefaultLanguage</A> directive</H2>
<!--%plaintext &lt;?INDEX {\tt DefaultLanguage} directive&gt; -->
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> DefaultLanguage <EM>MIME-lang</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> server config, virtual host, directory, .htaccess<BR>
<A
HREF="directive-dict.html#Override"
REL="Help"
><STRONG>Override:</STRONG></A> FileInfo<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
The DefaultLanguage directive tells Apache that all files in the
directive's scope (<EM>e.g.</EM>, all files covered by the current
<CODE>&lt;Directory&gt;</CODE> container) that don't have an explicit
language extension (such as <SAMP>.fr</SAMP> or <SAMP>.de</SAMP> as
configured by <SAMP>AddLanguage</SAMP>) should be considered to be in
the specified <EM>MIME-lang</EM> language. This allows entire
directories to be marked as containing Dutch content, for instance,
without having to rename each file. Note that unlike using extensions
to specify languages, <SAMP>DefaultLanguage</SAMP> can only specify a
single language.
<P>
If no <SAMP>DefaultLanguage</SAMP> directive is in force, and a file
does not have any language extensions as configured by
<SAMP>AddLanguage</SAMP>, then that file will be considered to have no
language attribute.
<P>
<STRONG>See also</STRONG>: <A
HREF="/mod_negotiation.html">mod_negotiation</A>
<BR>
<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
multiple extensions</A>
<HR>
<H2><A NAME="forcetype">ForceType</A> directive</H2>
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> ForceType <EM>media type</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
<P>When placed into an <CODE>.htaccess</CODE> file or a
<CODE>&lt;Directory&gt;</CODE> or <CODE>&lt;Location&gt;</CODE> section,
this directive forces all matching files to be served
as the content type given by <EM>media type</EM>. For example, if you
had a directory full of GIF files, but did not want to label them all with
".gif", you might want to use:
<PRE>
ForceType image/gif
</PRE>
<P>Note that this will override any filename extensions that might determine
the media type.</P><HR>
<H2><A NAME="removehandler">RemoveHandler</A> directive</H2>
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> RemoveHandler <EM>extension extension...</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
<P>
The <SAMP>RemoveHandler</SAMP> directive removes any
handler associations for files with the given extensions.
This allows <CODE>.htaccess</CODE> files in subdirectories to undo
any associations inherited from parent directories or the server
config files. An example of its use might be:
</P>
<DL>
<DT><CODE>/foo/.htaccess:</CODE></DT>
<DD><CODE>AddHandler server-parsed .html</CODE></DD>
<DT><CODE>/foo/bar/.htaccess:</CODE></DT>
<DD><CODE>RemoveHandler .html</CODE></DD>
</DL>
<P>
This has the effect of returning <SAMP>.html</SAMP> files in the
<SAMP>/foo/bar</SAMP> directory to being treated as normal
files, rather than as candidates for parsing (see the
<A HREF="mod_include.html"><SAMP>mod_include</SAMP></A> module).
</P>
<HR>
<H2><A NAME="sethandler">SetHandler</A> directive</H2>
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> SetHandler <EM>handler-name</EM><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> directory, .htaccess<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime
<P>When placed into an <CODE>.htaccess</CODE> file or a
<CODE>&lt;Directory&gt;</CODE> or <CODE>&lt;Location&gt;</CODE> section,
this directive forces all matching files to be parsed through the
<A HREF="/handler.html">handler</A>
given by <EM>handler-name</EM>. For example, if you had a
directory you wanted to be parsed entirely as imagemap rule files,
regardless of extension, you might put the following into an
<CODE>.htaccess</CODE> file in that directory:
<PRE>
SetHandler imap-file
</PRE>
<P>Another example: if you wanted to have the server display a status
report whenever a URL of <CODE>http://servername/status</CODE> was
called, you might put the following into access.conf:
<PRE>
&lt;Location /status&gt;
SetHandler server-status
&lt;/Location&gt;
</PRE>
<HR>
<H2><A NAME="typesconfig">TypesConfig</A> directive</H2>
<!--%plaintext &lt;?INDEX {\tt TypesConfig} directive&gt; -->
<A
HREF="directive-dict.html#Syntax"
REL="Help"
><STRONG>Syntax:</STRONG></A> TypesConfig <EM>filename</EM><BR>
<A
HREF="directive-dict.html#Default"
REL="Help"
><STRONG>Default:</STRONG></A> <CODE>TypesConfig conf/MIME.types</CODE><BR>
<A
HREF="directive-dict.html#Context"
REL="Help"
><STRONG>Context:</STRONG></A> server config<BR>
<A
HREF="directive-dict.html#Status"
REL="Help"
><STRONG>Status:</STRONG></A> Base<BR>
<A
HREF="directive-dict.html#Module"
REL="Help"
><STRONG>Module:</STRONG></A> mod_mime<P>
The TypesConfig directive sets the location of the MIME types configuration
file. <EM>Filename</EM> is relative to the
<A HREF="core.html#serverroot">ServerRoot</A>. This file sets the default list of
mappings from filename extensions to content types; changing this file is not
recommended. Use the <A HREF="#addtype">AddType</A> directive instead. The
file contains lines in the format of the arguments to an AddType command:
<BLOCKQUOTE><EM>MIME-type extension extension ...</EM></BLOCKQUOTE>
The extensions are lower-cased. Blank lines, and lines beginning with a hash
character (`#') are ignored.<P>
<!--#include virtual="footer.html" -->
</BODY>
</HTML>