mod_speling

Overview

mod_speling module tries to correct misspelled URLs by performing case-insensitive filename search in requested folder or allowing one misspelling (character insertion/omission/transposition or wrong character).

If, after scanning the folder,

  • no matching document is found, Ape proceeds as usual and returns a "document not found" error
  • only one document is found that "almost" matches the request, it is returned in the form of a redirection response
  • more than one document with a close match is found, then the list of the matches is returned to the client and the client can select the correct option

Quick start

This line is enough to have mod_speling working on your site:

CheckSpelling On

Related articles and topics

Directives

Name Context Description
CheckCaseOnly S V D .h limits actions of the module to case-insensitive search only
CheckSpelling S V D .h enables mod_speling module functionality
CheckBaseName S V D .h checks filename without extension

CheckCaseOnly

CheckCaseOnly directive enabled (on) limits the scope of actions of the mod_speling module to lower/upper case changes. Other possible corrections are not performed.

Syntax

CheckCaseOnly On|Off

Default

CheckCaseOnly Off

Example

CheckCaseOnly On

CheckSpelling

CheckSpelling directive enables mod_speling module functionality.

Syntax

CheckSpelling On|Off

Default

CheckSpelling Off

When enabled, keep in mind that

  • the directory scan needed for spelling correction may affect the server's performance when many spelling corrections are performed at a time
  • the document trees should not contain sensitive files which could be matched unintendedly by a spelling "correction"
  • the module is unable to correct misspelled user names - only filenames or folder names
  • spelling corrections are applied strictly to existing files, so a request for /status may be incorrectly treated as "/stats.html" file.

Example

CheckSpelling On

CheckBaseName

CheckBaseName directive performs an extension-insensitive filename check, i.e. if the requested filename exactly matches some existing file in the target folder but their extensions are different, this existing file is shown in response.

Syntax

CheckBaseName On|Off

Default

CheckBaseName Off

Note! This directive is not supported in Apache but such functionality may be realized by recompiling the module with certain parameters.

Example

CheckBaseName On