<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Apache module mod_mime</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Module mod_mime</H1>

This module is contained in the <CODE>mod_mime.c</CODE> file, and is
compiled in by default. It provides for determining the types of files
from the filename.

<H2>Summary</H2>

This module is used to determine various bits of "meta information"
about documents. This information relates to the content of the
document and is returned to the browser or used in content-negotiation
within the server. In addition, a "handler" can be set for a document,
which determines how the document will be processed within the server.

<P>

The directives <A HREF="#addencoding">AddEncoding</A>, <A
HREF="#addhandler">AddHandler</A>, <A
HREF="#addlanguage">AddLanguage</A> and <A HREF="#addtype">AddType</A>
are all used to map file extensions onto the meta-information for that
file.  Respectively they set the content-encoding, handler,
content-language and MIME-type (content-type) of documents.  The
directive <A HREF="#typesconfig">TypesConfig</A> is used to specify a
file which also maps extensions onto MIME types. The directives <A
HREF="#forcetype">ForceType</A> and <A
HREF="#sethandler">SetHandler</A> are used to associated all the files
in a given location (<EM>e.g.</EM>, a particular directory) onto a particular
MIME type or handler.

<P>

Note that changing the type or encoding of a file does not change the
value of the <CODE>Last-Modified</CODE> header. Thus, previously cached
copies may still be used by a client or proxy, with the previous headers.

<H2><A NAME="multipleext">Files with Multiple Extensions</A></H2>

Files can have more than one extension, and the order of the
extensions is <EM>normally</EM> irrelevant. For example, if the file
<CODE>welcome.html.fr</CODE> maps onto content type text/html and
language French then the file <CODE>welcome.fr.html</CODE> will map
onto exactly the same information. The only exception to this is if an
extension is given which Apache does not know how to handle. In this
case it will "forget" about any information it obtained from
extensions to the left of the unknown extension. So, for example, if
the extensions fr and html are mapped to the appropriate language and
type but extension xxx is not assigned to anything, then the file
<CODE>welcome.fr.xxx.html</CODE> will be associated with content-type
text/html but <EM>no</EM> language.

<P>

If more than one extension is given which maps onto the same type of
meta-information, then the one to the right will be used. For example,
if ".gif" maps to the MIME-type image/gif and ".html" maps to the
MIME-type text/html, then the file <CODE>welcome.gif.html</CODE> will
be associated with the MIME-type "text/html".

<P>

Care should be taken when a file with multiple extensions gets
associated with both a MIME-type and a handler. This will usually
result in the request being by the module associated with the
handler. For example, if the <CODE>.imap</CODE> extension is mapped to
the handler "imap-file" (from mod_imap) and the <CODE>.html</CODE>
extension is mapped to the MIME-type "text/html", then the file
<CODE>world.imap.html</CODE> will be associated with both the
"imap-file" handler and "text/html" MIME-type. When it is processed,
the "imap-file" handler will be used, and so it will be treated as a
mod_imap imagemap file.

<H2>Directives</H2>
<UL>
<LI><A HREF="#addencoding">AddEncoding</A>
<LI><A HREF="#addhandler">AddHandler</A>
<LI><A HREF="#addlanguage">AddLanguage</A>
<LI><A HREF="#addtype">AddType</A>
<LI><A HREF="#defaultlanguage">DefaultLanguage</A>
<LI><A HREF="#forcetype">ForceType</A>
<LI><A HREF="#removehandler">RemoveHandler</A>
<LI><A HREF="#sethandler">SetHandler</A>
<LI><A HREF="#typesconfig">TypesConfig</A>
</UL>
<HR>


<H2><A NAME="addencoding">AddEncoding</A></H2>
<!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
<A
 HREF="directive-dict.html#Syntax"
 REL="Help"
><STRONG>Syntax:</STRONG></A> AddEncoding <EM>MIME-enc 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 AddEncoding directive maps the given filename extensions to the
specified encoding type. <EM>MIME-enc</EM> is the MIME encoding to use
for documents containing the <EM>extension</EM>. This mapping is added
to any already in force, overriding any mappings that already exist
for the same <EM>extension</EM>.

Example:
<BLOCKQUOTE><CODE> AddEncoding x-gzip gz<BR> AddEncoding x-compress Z
</CODE></BLOCKQUOTE>

This will cause filenames containing the .gz extension to be marked as
encoded using the x-gzip encoding, and filenames containing the .Z
extension to be marked as encoded with x-compress.<P>

Old clients expect <CODE>x-gzip</CODE> and <CODE>x-compress</CODE>,
however the standard dictates that they're equivalent to <CODE>gzip</CODE>
and <CODE>compress</CODE> respectively.  Apache does content encoding
comparisons by ignoring any leading <CODE>x-</CODE>.  When responding
with an encoding Apache will use whatever form (<EM>i.e.</EM>, <CODE>x-foo</CODE>
or <CODE>foo</CODE>) the client requested.  If the client didn't
specifically request a particular form Apache will use the form given by
the <CODE>AddEncoding</CODE> directive.  To make this long story short,
you should always use <CODE>x-gzip</CODE> and <CODE>x-compress</CODE>
for these two specific encodings.  More recent encodings, such as
<CODE>deflate</CODE> should be specified without the <CODE>x-</CODE>.

<P>

<STRONG>See also</STRONG>: <A HREF="#multipleext">Files with
multiple extensions</A>

<P><HR>

<H2><A NAME="addhandler">AddHandler</A></H2>

<A
 HREF="directive-dict.html#Syntax"
 REL="Help"
><STRONG>Syntax:</STRONG></A> AddHandler <EM>handler-name 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<BR>
<A
 HREF="directive-dict.html#Compatibility"
 REL="Help"
><STRONG>Compatibility:</STRONG></A> AddHandler is only available in Apache
1.1 and later<P>

<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></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></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></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<P>

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></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<BR>
<A
 HREF="directive-dict.html#Compatibility"
 REL="Help"
><STRONG>Compatibility:</STRONG></A> ForceType is only available in Apache
1.1 and later.<P>

<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></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<BR>
<A
 HREF="directive-dict.html#Compatibility"
 REL="Help"
><STRONG>Compatibility:</STRONG></A> RemoveHandler is only available in Apache
1.3.4 and later.<P>

<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></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<BR>
<A
 HREF="directive-dict.html#Compatibility"
 REL="Help"
><STRONG>Compatibility:</STRONG></A> SetHandler is only available in Apache
1.1 and later.<P>

<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></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>

