Ответ 1
Чтобы включить mod_speling (либо по местоположению, либо по VirtualHost), используйте директиву:
CheckSpelling On
Если вы хотите использовать нечувствительность к регистру:
CheckCaseOnly On
Я хочу иметь нечувствительные к регистру URL-адреса, используя модуль Apache mod_speling
, но это создает нежелательные списки "нескольких параметров", в то время как документация Apache говорит
При установке эта директива ограничивает действие орфографической коррекции на более низкие/верхние изменения. Другие потенциальные поправки не выполняются.
Я тестирую это на новой установке Apache 2.2.16 Unix, но я все еще сталкиваюсь с теми же проблемами, что и в 2008 году.
Это неожиданное (и не требуемое) поведение, когда Apache перечисляет несколько "множественных вариантов" (код состояния 300), когда включена директива checkCaseOnly!
У меня это в моем httpd.conf
:
CheckSpelling on
CheckCaseOnly on
Первая директива использовать mod_speling
, вторую директиву ограничивать только коррекции случая
Что я делаю неправильно?
Чтобы включить mod_speling (либо по местоположению, либо по VirtualHost), используйте директиву:
CheckSpelling On
Если вы хотите использовать нечувствительность к регистру:
CheckCaseOnly On
В Ubuntu 12.04 LTS с использованием Apache 2.2 я сделал следующее:
Создайте speling.conf
в ${APACHE}/mods-available
, чтобы предоставить параметры конфигурации.
<IfModule mod_speling.c>
CheckSpelling On
CheckCaseOnly On
</IfModule>
Вставьте speling.conf
и speling.load
в каталог с включенными модулями ${APACHE}/mods-enabled
:
# cd ../mods-enabled
# ln -s ../mods-available/speling.conf speling.conf
# ln -s ../mods-available/speling.load speling.load
Перезагрузите сервер.
# service restart apache2
TL;DR: CheckCaseOnly поврежден из-за ошибки, которая осталась незафиксированной более шести лет с 10/2014.
Я знаю, что это старый вопрос, но я столкнулся с той же проблемой. Это обновление поможет другим людям с той же проблемой.
Текущие ответы на этот вопрос неверны, поскольку OP использует mod_speling правильно, но есть ошибка.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44221
Основная проблема заключается в том, что люди apache не согласны с тем, что исправляют это поведение, потому что он изменяет остальную часть модуля. Это осталось незафиксированным для чего-то вроде 6 лет.
Вам действительно нужен нечувствительный к регистру URL?
Почему бы просто не пропустить строчные URL-адреса, например?
RewriteEngine On
RewriteMap lc int:tolower
RewriteRule (.*) ${lc:$1} [R]
Посмотрите http://www.issociate.de/board/post/265865/make_URL