mod_mime.html revision c9a0fcaa49f5ac034c7abc782e6047a9f1e62846
7d7931c1f4d46b041ad2ad6fdb9499289063611eianh<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb<HTML>
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb<HEAD>
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb<TITLE>Apache module mod_mime</TITLE>
b9b69856aec9ea58ea1b1e5aff669e8eaf2ebce4rbb</HEAD>
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb<BODY>
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb<!--#include virtual="header.html" -->
7d7931c1f4d46b041ad2ad6fdb9499289063611eianh<H1>Module mod_mime</h1>
1f3a44f2fd7f9fee00b80c7ddcf1028ea145f91drbb
68bcde9c52e9e749482df2800dbdff09559115e0chuckThis module is contained in the <code>mod_mime.c</code> file, and is
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckcompiled in by default. It provides for determining the types of files
43ea154f46345c9722c2b25b2b9f5086ec79eaeeorlikowskifrom the filename.
43ea154f46345c9722c2b25b2b9f5086ec79eaeeorlikowski
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<h2>Summary</h2>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckThis module is used to determine the mime types of documents. Some mime
0c233c76f21b358f4a0d81e0f956339ca727c14cchucktypes indicate special processing to be performed by the server, otherwise
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckthe type is returned to the client so that the browser can deal with
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckthe document appropriately.<p>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThe filename of a document is treated as being composed of a basename followed
53c2eb831bfe47860e3f5ec9190b15cb92f15181chuckby some extensions, in the following order:
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<blockquote><em>base.type.language.enc</em></blockquote>
53c2eb831bfe47860e3f5ec9190b15cb92f15181chuckThe <em>type</em> extension sets the type of the document; types are defined
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowskiin the <A HREF="#typesconfig">TypesConfig</A> file and by the
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski<A HREF="#addtype">AddType</A> directive. The <em>language</em> extension
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowskisets the language of the document, as defined by the
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski<A HREF="#addlanguage">AddLanguage</A> directive. Finally, the
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski<em>enc</em> directive sets the encoding of the document, as defined by
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowskithe <A HREF="#addencoding">AddEncoding</A> directive.
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski
4f7dd0949d92462a8adc31eee8aff266eea55204chuck
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<h2> Directives</h2>
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<ul>
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<li><A HREF="#addencoding">AddEncoding</A>
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<li><A HREF="#addhandler">AddHandler</A>
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck<li><A HREF="#addlanguage">AddLanguage</A>
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck<li><A HREF="#addtype">AddType</A>
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck<li><A HREF="#forcetype">ForceType</A>
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<li><A HREF="#sethandler">SetHandler</A>
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck<li><A HREF="#typesconfig">TypesConfig</A>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck</ul>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<hr>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<A name="addencoding"><h2>AddEncoding</h2></A>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> AddEncoding <em>mime-enc extension extension...</em><br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Override:</strong> FileInfo<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThe AddEncoding directive adds to the list of filename extensions which
68bcde9c52e9e749482df2800dbdff09559115e0chuckfilenames may end in for the specified encoding type. <em>Mime-enc</em>
68bcde9c52e9e749482df2800dbdff09559115e0chuckis the mime encoding to use for documents ending in <em>extension</em>.
68bcde9c52e9e749482df2800dbdff09559115e0chuckExample:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<blockquote><code>
68bcde9c52e9e749482df2800dbdff09559115e0chuckAddEncoding x-gzip gz<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuckAddEncoding x-compress Z
68bcde9c52e9e749482df2800dbdff09559115e0chuck</code></blockquote>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThis will cause files ending in .gz to be marked as encoded using the x-gzip
68bcde9c52e9e749482df2800dbdff09559115e0chuckencoding, and .Z files to be marked as encoded with x-compress.<p><hr>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<h2><a name="addhandler">AddHandler</a></h2>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> &lt;AddHandler <em>handler-name extension</em>&gt;<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Compatibility:</strong> AddHandler is only available in Apache
68bcde9c52e9e749482df2800dbdff09559115e0chuck1.1 and later<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<p>AddHandler maps the filename extension <em>extension</em> to the
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<a href="/handler.html">handler</a>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<em>handler-name</em>. For example, to activate CGI scripts
68bcde9c52e9e749482df2800dbdff09559115e0chuckwith the file extension "<code>.cgi</code>", you might use:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck AddHandler cgi-script cgi
68bcde9c52e9e749482df2800dbdff09559115e0chuck</pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<p>Once that has been put into your srm.conf or httpd.conf file, any
68bcde9c52e9e749482df2800dbdff09559115e0chuckfile ending with "<code>.cgi</code>" will be treated as a CGI
68bcde9c52e9e749482df2800dbdff09559115e0chuckprogram.</p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<A name="addlanguage"><h2>AddLanguage</h2></A>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<!--%plaintext &lt;?INDEX {\tt AddLanguage} directive&gt; -->
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> AddLanguage <em>mime-lang extension extension...</em><br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Override:</strong> FileInfo<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThe AddLanguage directive adds to the list of filename extensions which
68bcde9c52e9e749482df2800dbdff09559115e0chuckfilenames may end in for the specified content language. <em>Mime-lang</em>
68bcde9c52e9e749482df2800dbdff09559115e0chuckis the mime language of files with names ending <em>extension</em>,
68bcde9c52e9e749482df2800dbdff09559115e0chuckafter any content encoding extensions have been removed. Example:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<blockquote><code>
68bcde9c52e9e749482df2800dbdff09559115e0chuckAddEncoding x-compress Z<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuckAddLanguage en .en<br>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckAddLanguage fr .fr<br>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck</code></blockquote>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThen the document <code>xxxx.en.Z</code> will be treated as being a compressed
68bcde9c52e9e749482df2800dbdff09559115e0chuckEnglish document. Although the content language is reported to the client,
68bcde9c52e9e749482df2800dbdff09559115e0chuckthe browser is unlikely to use this information. The AddLanguage directive
68bcde9c52e9e749482df2800dbdff09559115e0chuckis more useful for content negotiation, where the server returns one
68bcde9c52e9e749482df2800dbdff09559115e0chuckfrom several documents based on the client's language preference.<p><hr>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<A name="addtype"><h2>AddType</h2></A>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<!--%plaintext &lt;?INDEX {\tt AddType} directive&gt; -->
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> AddType <em>mime-type extension extension...</em><br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Context:</strong> server config, virtual host, directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<Strong>Override:</strong> FileInfo<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckThe AddType directive adds to the list of filename extensions which
68bcde9c52e9e749482df2800dbdff09559115e0chuckfilenames may end in for the specified content type. <em>Mime-enc</em>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckis the mime type to use for documents ending in <em>extension</em>.
0c233c76f21b358f4a0d81e0f956339ca727c14cchuckafter content-encoding and language extensions have been removed. Example:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<blockquote><code>
68bcde9c52e9e749482df2800dbdff09559115e0chuckAddType image/gif GIF
68bcde9c52e9e749482df2800dbdff09559115e0chuck</code></blockquote>
68bcde9c52e9e749482df2800dbdff09559115e0chuckIt is recommended that new mime types be added using the AddType directive
68bcde9c52e9e749482df2800dbdff09559115e0chuckrather than changing the <A HREF="#typesconfig">TypesConfig</A> file.<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuckNote that, unlike the NCSA httpd, this directive cannot be used to set the
68bcde9c52e9e749482df2800dbdff09559115e0chucktype of particular files.<p><hr>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<h2><a name="sethandler">ForceType</a></h2>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> &lt;ForceType <em>media type</em>&gt;<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Context:</strong> directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Compatibility:</strong> ForceType is only available in Apache
68bcde9c52e9e749482df2800dbdff09559115e0chuck1.1 and later.<p>
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<p>When placed into an <code>.htaccess</code> file or a
68bcde9c52e9e749482df2800dbdff09559115e0chuck<code>&lt;Directory&gt;</code> or <code>&lt;Location</code> section,
68bcde9c52e9e749482df2800dbdff09559115e0chuckthis directive forces all matching files to be served
68bcde9c52e9e749482df2800dbdff09559115e0chuckas the content type given by <em>media type</em>. For example, if you
68bcde9c52e9e749482df2800dbdff09559115e0chuckhad a directory full of GIF files, but did not want to label them all with
68bcde9c52e9e749482df2800dbdff09559115e0chuck".gif", you might want to use:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck ForceType image/gif
68bcde9c52e9e749482df2800dbdff09559115e0chuck</pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<p>Note that this will override any filename extensions that might
68bcde9c52e9e749482df2800dbdff09559115e0chuckmedia type.</p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<h2><a name="sethandler">SetHandler</a></h2>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Syntax:</strong> &lt;SetHandler <em>handler-name</em>&gt;<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Context:</strong> directory, .htaccess<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Status:</strong> Base<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Module:</strong> mod_mime<br>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<strong>Compatibility:</strong> SetHandler is only available in Apache
68bcde9c52e9e749482df2800dbdff09559115e0chuck1.1 and later.<p>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck<p>When placed into an <code>.htaccess</code> file or a
68bcde9c52e9e749482df2800dbdff09559115e0chuck<code>&lt;Directory&gt;</code> or <code>&lt;Location</code> section,
68bcde9c52e9e749482df2800dbdff09559115e0chuckthis directive forces all matching files to be parsed through the
68bcde9c52e9e749482df2800dbdff09559115e0chuck<a href="/handler.html">handler</a>
68bcde9c52e9e749482df2800dbdff09559115e0chuckgiven by <em>handler-name</em>. For example, if you had a
68bcde9c52e9e749482df2800dbdff09559115e0chuckdirectory you wanted to be parsed entirely as imagemap rule files,
68bcde9c52e9e749482df2800dbdff09559115e0chuckregardless of extension, you might put the following into an
68bcde9c52e9e749482df2800dbdff09559115e0chuck<code>.htaccess</code> file in that directory:
68bcde9c52e9e749482df2800dbdff09559115e0chuck<pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck SetHandler imap-file
68bcde9c52e9e749482df2800dbdff09559115e0chuck</pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
0c233c76f21b358f4a0d81e0f956339ca727c14cchuck<p>Another example: if you wanted to have the server display a status
68bcde9c52e9e749482df2800dbdff09559115e0chuckreport whenever a URL of <code>http://servername/status</code> was
68bcde9c52e9e749482df2800dbdff09559115e0chuckcalled, you might put the following into access.conf:
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<pre>
4f7dd0949d92462a8adc31eee8aff266eea55204chuck &lt;Location /status&gt;
68bcde9c52e9e749482df2800dbdff09559115e0chuck SetHandler server-status
4f7dd0949d92462a8adc31eee8aff266eea55204chuck &lt;/Location&gt;
4f7dd0949d92462a8adc31eee8aff266eea55204chuck</pre>
68bcde9c52e9e749482df2800dbdff09559115e0chuck
4f7dd0949d92462a8adc31eee8aff266eea55204chuck
4f7dd0949d92462a8adc31eee8aff266eea55204chuck<A name="typesconfig"><h2>TypesConfig</h2></A>
68bcde9c52e9e749482df2800dbdff09559115e0chuck<!--%plaintext &lt;?INDEX {\tt TypesConfig} directive&gt; -->
<strong>Syntax:</strong> TypesConfig <em>filename</em><br>
<strong>Default:</strong> <code>TypesConfig conf/mime.types</code><br>
<Strong>Context:</strong> server config<br>
<strong>Status:</strong> Base<br>
<strong>Module:</strong> mod_mime<p>
The TypesConfig directive sets the location of the mime types configuration
file. <em>Filename</em> is relative to the
<A HREF="#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>