Модуль Apache mod_speling
| Описание: | Пытается исправить ошибочные URL, игнорируя регистр символов или исправляя небольшие опечатки. |
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | speling_module |
| Исходный файл: | mod_speling.c |
Краткое описание
Иногда основной сервер Apache не может обработать запросы к документам, потому что в запросе допущена опечатка или неверно указан регистр символов. Этот модуль решает проблему, пытаясь найти подходящий документ, даже если все остальные модули уже отказались от поиска. Он сравнивает имя каждого документа в запрошенном каталоге с именем запрошенного документа, не учитывая регистр символов, и допускает до одной опечатки (вставку, пропуск или перестановку символа либо неверный символ). По этому принципу составляется список всех подходящих имён документов. Модуль также может исправить неверное расширение.
Если после проверки каталога
- подходящий документ не найден, Apache продолжит работу как обычно и вернёт ошибку (
404 - document not found). - найден только один документ, который «почти» соответствует запросу, он будет возвращён в виде ответа перенаправления (
301 - Moved Permanently). - найдено несколько документов, близких к запрошенному, список совпадений будет возвращён клиенту, чтобы он мог выбрать подходящий вариант (
300 - Multiple Choices).
Директива CheckBasenameMatch
| Описание: | Также учитывать файлы с отличающимися расширениями. |
|---|---|
| Синтаксис: | CheckBasenameMatch on|off |
| Значение по умолчанию: | CheckBasenameMatch On |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Options |
| Статус: | Расширение |
| Модуль: | mod_speling |
| Совместимость: | Доступна в httpd 2.4.50 и более поздних версиях |
Если эта директива включена, исправление ошибок в имени распространяется и на расширение файла. Например, файл foo.gif будет соответствовать запросу foo или foo.jpg. Это может быть особенно полезно в сочетании с MultiViews.
Директива CheckCaseOnly
| Описание: | Ограничивает действие модуля speling исправлением регистра символов |
|---|---|
| Синтаксис: | CheckCaseOnly on|off |
| Значение по умолчанию: | CheckCaseOnly Off |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Options |
| Статус: | Расширение |
| Модуль: | mod_speling |
Если эта директива включена, исправление ошибок ограничивается изменением регистра символов на нижний или верхний. Другие возможные исправления не выполняются, кроме случая, когда также включена директива CheckBasenameMatch.
Директива CheckSpelling
| Описание: | Включает модуль проверки орфографии |
|---|---|
| Синтаксис: | CheckSpelling on|off |
| Значение по умолчанию: | CheckSpelling Off |
| Контекст: | конфигурация сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Options |
| Статус: | Расширение |
| Модуль: | mod_speling |
Эта директива включает или отключает модуль проверки орфографии. При включении учитывайте, что
- проверка каталога, необходимая для исправления ошибок, повлияет на производительность сервера, если одновременно потребуется исправить много ошибок.
- деревья документов не должны содержать конфиденциальные файлы, которые могут быть случайно выбраны при «исправлении» написания.
- модуль не умеет исправлять ошибки в именах пользователей (как в
http://my.host/~apahce/), а только в именах файлов или каталогов. - исправление ошибок применяется строго к существующим файлам, поэтому запрос для
<Location /status>может быть ошибочно обработан как запрос к согласованному файлу «/stats.html».
Директиву mod_speling не следует включать в каталогах с поддержкой DAV, поскольку модуль будет пытаться «исправлять» имена новых ресурсов, сверяя их с существующими именами файлов. Например, при попытке загрузить новый документ doc43.html запрос может быть перенаправлен к существующему документу doc34.html, что не соответствует ожидаемому поведению.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_speling.html