summaryrefslogtreecommitdiff
path: root/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html
blob: cde7271ef20a845ffc5c51c03fcebdf04c5bc616 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!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"
 >
<DIV ALIGN="CENTER">
 <IMG SRC="../images/sub.gif" ALT="[APACHE DOCUMENTATION]">
 <H3>
  Apache HTTP Server Version 1.3
 </H3>
</DIV>

  <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 attempts to correct misspellings 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 -->
  <H2><A NAME="checkspelling">CheckSpelling</A></H2>
  <!--%plaintext &lt;?INDEX {\tt CheckSpelling} directive&gt; -->
  <A
   HREF="directive-dict.html#Syntax"
   REL="Help"
  ><STRONG>Syntax:</STRONG></A> CheckSpelling <EM>on/off</EM><BR>
  <A
   HREF="directive-dict.html#Default"
   REL="Help"
  ><STRONG>Default:</STRONG></A> <CODE>CheckSpelling Off</CODE><BR>
  <A
   HREF="directive-dict.html#Context"
   REL="Help"
  ><STRONG>Context:</STRONG></A> server config, virtual host,
   directory, .htaccess<BR>
  <A
   HREF="directive-dict.html#Override"
   REL="Help" 
  ><STRONG>Override:</STRONG></A> Options
  <BR>
  <A
   HREF="directive-dict.html#Status"
   REL="Help"
  ><STRONG>Status:</STRONG></A> Base<BR>
  <A
   HREF="directive-dict.html#Module"
   REL="Help"
  ><STRONG>Module:</STRONG></A> mod_speling<BR>
  <A
   HREF="directive-dict.html#Compatibility"
   REL="Help"
  ><STRONG>Compatibility:</STRONG></A> 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 <SAMP>CheckSpelling</SAMP> directive was only available
  in the "server" and "virtual host" contexts.
  <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 <SAMP>&lt;Location /status&gt;</SAMP> may get incorrectly treated
       as the negotiated file "<SAMP>/stats.html</SAMP>".
   </LI>
  </UL>

<HR>

<H3 ALIGN="CENTER">
 Apache HTTP Server Version 1.3
</H3>

<A HREF="./"><IMG SRC="../images/index.gif" ALT="Index"></A>
<A HREF="../"><IMG SRC="../images/home.gif" ALT="Home"></A>

 </BODY>
</HTML>