summaryrefslogtreecommitdiff
path: root/docs/manual/mod/mod_mime_magic.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/mod/mod_mime_magic.html')
-rw-r--r--docs/manual/mod/mod_mime_magic.html275
1 files changed, 0 insertions, 275 deletions
diff --git a/docs/manual/mod/mod_mime_magic.html b/docs/manual/mod/mod_mime_magic.html
deleted file mode 100644
index a85e6b46b5..0000000000
--- a/docs/manual/mod/mod_mime_magic.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_mime_magic</TITLE>
- </HEAD>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
- <DIV ALIGN="CENTER">
- <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
- </DIV>
-
- <H1 align="CENTER">Module mod_mime_magic</H1>
-
- This module is contained in the mod_mime_magic.c file, and is
- an optional extension to the Apache HTTPD server.
- It can be used to determine the MIME type of a file by looking at a
- few bytes of its contents, the same way the Unix file(1) command works.
- To use mod_mime_magic you have to enable the following line in the
- server build <TT>Configuration</TT> file:
-
- <PRE>
- AddModule modules/standard/mod_mime_magic.o
- </PRE>
-
- This should be listed <EM>before</EM> mod_mime in the build
- <TT>Configuration</TT> file so that it will be used after mod_mime.
- mod_mime_magic is intended as a "second line of defense" for cases
- mod_mime cannot resolve.
-
- <H2>Summary</H2>
-
- 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.
- In the case of this module,
- it tries to figure out the MIME type of the file.
- <P>
- This module active only if the magic file is specified by the
- <A HREF="#mimemagicfile"><CODE>MimeMagicFile</CODE></A> directive.
- <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:
- <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>
- "&gt;" indicates a dependency upon the previous non-"&gt;" 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.
-
-<PRE>
-# Sun/NeXT audio data
-0 string .snd
-&gt;12 belong 1 audio/basic
-&gt;12 belong 2 audio/basic
-&gt;12 belong 3 audio/basic
-&gt;12 belong 4 audio/basic
-&gt;12 belong 5 audio/basic
-&gt;12 belong 6 audio/basic
-&gt;12 belong 7 audio/basic
-&gt;12 belong 23 audio/x-adpcm
-</PRE>
-
- 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.)
-
-<PRE>
-# Frame
-0 string \&lt;MakerFile application/x-frame
-0 string \&lt;MIFFile application/x-frame
-0 string \&lt;MakerDictionary application/x-frame
-0 string \&lt;MakerScreenFon application/x-frame
-0 string \&lt;MML application/x-frame
-0 string \&lt;Book application/x-frame
-0 string \&lt;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>
-
- An optional MIME encoding can be included as a fifth column.
- For example, this can recognize gzipped files and set the encoding
- for them.
-
-<PRE>
-# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
-0 string \037\213 application/octet-stream x-gzip
-</PRE>
-
- <H3>Performance Issues</H3>
-
- 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>
- 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>
- 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.
-
- <H2>Directives</H2>
- <P>
- <UL>
- <LI><A HREF="#mimemagicfile">MimeMagicFile</A>
- </LI>
- </UL>
- </P>
- <HR>
- <H2><A NAME="mimemagicfile">
- MimeMagicFile
- </A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> MimeMagicFile <EM>magic-file-name</EM>
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> none
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server config, virtual host
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Extension
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_mime_magic
- <P>
-
- The <CODE>MimeMagicFile</CODE> 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>
- <HR>
-
- <H2><A NAME="notes">Notes</A></H2>
-
- The following notes apply to the mod_mime_magic module and are
- included here for compliance with contributors' copyright restrictions
- that require their acknowledgment.
-
-<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>
-
- </BODY>
-</HTML>