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