mod_speling.xml revision 5f5d1b4cc970b7f06ff8ef6526128e9a27303d88
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->
<!--
Copyright 2002-2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_speling.xml.meta">
<name>mod_speling</name>
<description>Attempts to correct mistaken URLs that
users might have entered by ignoring capitalization and by
allowing up to one misspelling</description>
<status>Extension</status>
<sourcefile>mod_speling.c</sourcefile>
<identifier>speling_module</identifier>
<summary>
<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,</p>
<ul>
<li>no matching document was found, Apache will proceed as
usual and return a "document not found" error.</li>
<li>only one document is found that "almost" matches the
request, then it is returned in the form of a redirection
response.</li>
<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.</li>
</ul>
</summary>
<directivesynopsis>
<name>CheckSpelling</name>
<description>Enables the spelling
module</description>
<syntax>CheckSpelling on|off</syntax>
<default>CheckSpelling Off</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>Options</override>
<compatibility>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. Prior to Apache
1.3.2, the <code>CheckSpelling</code> directive was only available in the
"server" and "virtual host" contexts.</compatibility>
<usage>
<p>This directive enables or disables the spelling module. When
enabled, keep in mind that</p>
<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>
<li>the document trees should not contain sensitive files
which could be matched inadvertently by a spelling
"correction".</li>
<li>the module is unable to correct misspelled user names (as
in <code>http://my.host/~apahce/</code>), just file names or
directory names.</li>
<li>spelling corrections apply strictly to existing files, so
a request for the <code>&lt;Location /status&gt;</code> may
get incorrectly treated as the negotiated file
"<code>/stats.html</code>".</li>
</ul>
<!-- XXX: is that really true?! -nd -->
<p>mod_speling should not be enabled in <a href="mod_dav.html">DAV</a>
enabled directories, because it will try to "spell fix" newly created
resource names against existing filenames, e.g., when trying to upload
a new document <code>doc43.html</code> it might redirect to an existing
document <code>doc34.html</code>, which is not what was intended.
</p>
</usage>
</directivesynopsis>
</modulesynopsis>