blob: 2db6c4773a93d8dfee821f72aeb6b770c82d4e81 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Apache module mod_speling</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_speling</H1>
<P>
This module is contained in the <code>mod_speling.c</code> file,
and is <strong>not</strong> compiled in by default.
It attemps to correct mispellings of
URLs that users might have entered, by ignoring capitalization
and by allowing up to one misspelling.<br>
This catches the majority of misspelled requests. An automatic
"spelling corrected" redirection is returned if only one matching
document was found, and a list of matches is returned if more than
one document with a sufficiently similar name is found.
</P>
<h2>Summary</h2>
<p>
Requests to documents sometimes cannot be served by the core apache
server because the request was misspelled or miscapitalized. This
module addresses this problem by trying to find a matching document,
even after all other modules gave up. It does its work by comparing
each document name in the requested directory against the requested
document name <STRONG>without regard to case</STRONG>, and allowing
<STRONG>up to one misspelling</STRONG> (character insertion / omission
/ transposition or wrong character). A list is built with all document
names which were matched using this strategy.
</p>
<p>
If, after scanning the directory,
<ul>
<li>no matching document was found, Apache will proceed as usual
and return a "document not found" error.
<li>only one document is found that "almost" matches the request,
then it is returned in the form of a redirection response.
<li>more than one document with a close match was found, then
the list of the matches is returned to the client, and the client
can select the correct candidate.
</ul>
</p>
<h2>Directives</h2>
<menu>
<li><A HREF="#checkspelling">CheckSpelling</A>
</menu>
<HR> <!-- the HR is part of the directive description -->
<A name="checkspelling"><h2>CheckSpelling</h2></A>
<!--%plaintext &lt;?INDEX {\tt CheckSpelling} directive&gt; -->
<strong>Syntax:</strong> CheckSpelling <em>on/off</em><br>
<strong>Default:</strong> <code>CheckSpelling Off</code><br>
<Strong>Context:</strong> server config, virtual host<br>
<strong>Status:</strong> Base<br>
<strong>Module:</strong> mod_speling<br>
<strong>Compatibility:</strong> CheckSpelling was available as a separately
available module for Apache 1.1, but was limited to miscapitalizations.
As of Apache 1.3, it is part of the apache distribution<!-- or:
available as a separate module-->.<p>
This directive enables or disables the spelling module. When enabled,
keep in mind that
<UL>
<LI>the directory scan which is necessary for the spelling
correction will have an impact on the server's performance
when many spelling corrections have to be performed at the same time.
<LI>the document trees should not contain sensitive files which could
be matched inadvertedly, by a spelling "correction".
<LI>the module is unable to correct misspelled user names
(as in <code>http://my.host/~apahce/</code>), just file names or
directory names.
</UL>
<!--#include virtual="footer.html" -->
</BODY>
</HTML>