Apache 模块 mod_speling

Description:尝试通过忽略大写字母或尝试纠正各种较小的拼写错误来纠正错误的 URL。
Status:Extension
Module Identifier:speling_module
Source File:mod_speling.c

Summary

有时,核心 apache 服务器无法处理对文档的请求,因为该请求的拼写错误或大小写错误。即使在所有其他模块都放弃之后,该模块也通过尝试查找匹配的文档来解决此问题。它通过将请求目录中的每个文档名称与请求的文档名称 进行比较(不考虑大小写),并允许 最多拼写错误**(字符插入/省略/换位或错误字符)来完成其工作。将使用此策略匹配的所有文档名称构建一个列表。

如果在扫描目录后,

  • 找不到匹配的文档,Apache 将照常进行并返回“找不到文档”错误。

  • 仅找到一个“几乎”匹配该请求的文档,然后以重定向响应的形式返回。

  • 找到多个具有紧密匹配项的文档,然后将匹配项列表返回给 Client 端,Client 端可以选择正确的候选者。

CheckCaseOnly Directive

Description:将拼写模块的操作限制为大小写更正
Syntax:CheckCaseOnly on|off
Default:CheckCaseOnly Off
Context:服务器配置,虚拟主机,目录,.htaccess
Override:Options
Status:Extension
Module:mod_speling

设置后,此指令将拼写更正的操作限制为小写/大写更改。不执行其他可能的校正。

CheckSpelling Directive

Description:启用拼写模块
Syntax:CheckSpelling on|off
Default:CheckSpelling Off
Context:服务器配置,虚拟主机,目录,.htaccess
Override:Options
Status:Extension
Module:mod_speling

该指令启用或禁用拼写模块。启用后,请记住

  • 当必须同时执行许多拼写更正时,进行拼写更正所必需的目录扫描将影响服务器的性能。

  • 文档树不应包含可能会因拼写“更正”而无意中匹配的敏感文件。

  • 该模块无法纠正拼写错误的用户名(如http://my.host/~apahce/),只能纠正文件名或目录名。

  • 拼写更正严格地应用于现有文件,因此对<Location "/status">的请求可能会被错误地视为协商的文件“ /stats.html”。

不应在启用DAV的目录中启用 mod_speling,因为它会尝试针对现有文件名“拼写修复”新创建的资源名称,例如,当尝试上载新文档doc43.html时,它可能会重定向到现有文档doc34.html,这不是原本打算。