mod_speling.xml revision 546261cff920386b7c4ebed6adac94e7822930fe
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<?xml version="1.0"?>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<!-- $LastChangedRevision$ -->
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<!--
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd Licensed to the Apache Software Foundation (ASF) under one or more
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd contributor license agreements. See the NOTICE file distributed with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd this work for additional information regarding copyright ownership.
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc The ASF licenses this file to You under the Apache License, Version 2.0
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd (the "License"); you may not use this file except in compliance with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the License. You may obtain a copy of the License at
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
2e545ce2450a9953665f701bb05350f0d3f26275nd http://www.apache.org/licenses/LICENSE-2.0
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen Unless required by applicable law or agreed to in writing, software
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd distributed under the License is distributed on an "AS IS" BASIS,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen See the License for the specific language governing permissions and
3f08db06526d6901aa08c110b5bc7dde6bc39905nd limitations under the License.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd-->
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<modulesynopsis metafile="mod_speling.xml.meta">
3f08db06526d6901aa08c110b5bc7dde6bc39905nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<name>mod_speling</name>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<description>Attempts to correct mistaken URLs that
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndusers might have entered by ignoring capitalization and by
e23d878014f00a27b043a25e59f809c7af497e5ctakashiallowing up to one misspelling</description>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<status>Extension</status>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<sourcefile>mod_speling.c</sourcefile>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<identifier>speling_module</identifier>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<summary>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>Requests to documents sometimes cannot be served by the core
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd apache server because the request was misspelled or
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd miscapitalized. This module addresses this problem by trying to
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd find a matching document, even after all other modules gave up.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd It does its work by comparing each document name in the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd requested directory against the requested document name
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <strong>without regard to case</strong>, and allowing
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <strong>up to one misspelling</strong> (character insertion /
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd omission / transposition or wrong character). A list is built
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd with all document names which were matched using this
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd strategy.</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>If, after scanning the directory,</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <ul>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>no matching document was found, Apache will proceed as
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd usual and return a "document not found" error.</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>only one document is found that "almost" matches the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd request, then it is returned in the form of a redirection
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd response.</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>more than one document with a close match was found, then
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the list of the matches is returned to the client, and the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd client can select the correct candidate.</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </ul>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd</summary>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<directivesynopsis>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<name>CheckSpelling</name>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<description>Enables the spelling
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60ndmodule</description>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<syntax>CheckSpelling on|off</syntax>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<default>CheckSpelling Off</default>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<contextlist>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<context>server config</context>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<context>virtual host</context>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<context>directory</context>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<context>.htaccess</context>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd</contextlist>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<override>Options</override>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<usage>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>This directive enables or disables the spelling module. When
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd enabled, keep in mind that</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <ul>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>the directory scan which is necessary for the spelling
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd correction will have an impact on the server's performance
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd when many spelling corrections have to be performed at the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd same time.</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>the document trees should not contain sensitive files
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd which could be matched inadvertently by a spelling
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd "correction".</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>the module is unable to correct misspelled user names (as
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd in <code>http://my.host/~apahce/</code>), just file names or
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd directory names.</li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <li>spelling corrections apply strictly to existing files, so
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd a request for the <code>&lt;Location /status&gt;</code> may
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd get incorrectly treated as the negotiated file
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd "<code>/stats.html</code>".</li>
e23d878014f00a27b043a25e59f809c7af497e5ctakashi </ul>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen <!-- XXX: is that really true?! -nd -->
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>mod_speling should not be enabled in <a href="mod_dav.html">DAV</a>
205f749042ed530040a4f0080dbcb47ceae8a374rjung enabled directories, because it will try to "spell fix" newly created
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen resource names against existing filenames, e.g., when trying to upload
0d0ba3a410038e179b695446bb149cce6264e0abnd a new document <code>doc43.html</code> it might redirect to an existing
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd document <code>doc34.html</code>, which is not what was intended.
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd </p>
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd</usage>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd</directivesynopsis>
<directivesynopsis>
<name>CheckCaseOnly</name>
<description>Limits the action of the speling module to case corrections</description>
<syntax>CheckCaseOnly on|off</syntax>
<default>CheckCaseOnly Off</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>Options</override>
<usage>
<p>When set, this directive limits the action of the spelling correction to lower/upper case changes.
Other potential corrections are not performed.</p>
</usage>
</directivesynopsis>
</modulesynopsis>