Модуль 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 |
| Переопределение: | Параметры |
| Статус: | Расширение |
| Модуль: | mod_speling |
| Совместимость: | Доступно в httpd 2.4.50 и более поздних версиях |
При установке эта директива расширяет действие исправления орфографических ошибок до расширения имени файла. Например, файл foo.gif будет соответствовать запросу на foo или foo.jpg. Это может быть особенно полезно в сочетании с MultiViews.
Директива CheckCaseOnly
| Описание: | Ограничивает действие модуля speling корректировкой регистра |
|---|---|
| Синтаксис: | CheckCaseOnly on|off |
| Значение по умолчанию: | CheckCaseOnly Off |
| Контекст: | настройка сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Параметры |
| Статус: | Расширение |
| Модуль: | mod_speling |
При установке эта директива ограничивает действие исправления орфографических ошибок изменениями регистра (строчные/прописные). Другие потенциальные исправления не выполняются, за исключением случаев, когда CheckBasenameMatch также установлено.
Директива CheckSpelling
| Описание: | Включает модуль исправления орфографии |
|---|---|
| Синтаксис: | CheckSpelling on|off |
| Значение по умолчанию: | CheckSpelling Off |
| Контекст: | настройка сервера, виртуальный хост, каталог, .htaccess |
| Переопределение: | Параметры |
| Статус: | Расширение |
| Модуль: | 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