Я новичок в управлении Apache, так что извините, если я что-то неправильно сформулировал.
У меня есть веб-сайт - скажем, http://domain.com
. Проблема в том, что когда я пытаюсь открыть http://domain.com/index.html
в веб-браузере отображается страница, но когда я пытаюсь получить доступ http://domain.com/Index.html
(обратите внимание на заглавную букву I), он отвечает HTTP 404.
Как мне настроить Apache для обслуживания обоих этих файлов (и каталогов, если на то пошло) без учета регистра? Текущий httpd.conf
является Вот.
РЕДАКТИРОВАТЬ Дэн С, спасибо за подсказку. Я в основном хочу разрешить пользователям загружать файлы с моего сервера и не хочу, чтобы они знали, что Index.html
и index.html
на самом деле разные.
Я также очень хотел бы знать, каковы последствия этого решения.
Если вы запускаете apache на сервере Linux, проблема в том, что он использует базовую файловую систему Linux, чувствительную к регистру, вы можете посмотреть на ReWrite, как упомянул Мэтт.
Другой вариант - модуль mod_speling (да, это один L) для apache, упомянутый> Вот <но я думаю, что это будет искать только одну орфографическую ошибку, а также может замедлить доступ, если в одном каталоге много файлов
надеюсь, это поможет
Первое, что приходит в голову, это mod_rewrite, который уже загружен в ваш config.
Предполагая, что все ваши файлы в нижнем регистре (это может быть опасным предположением):
RewriteEngine On
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ ${tolower:$1}
На самом деле это не работает с httpd.conf. Как уже говорилось, проблема в том, что файловая система Linux, в которой вы находитесь, чувствительна к регистру.
Я знаю один метод, который точно работает: поместите свое веб-приложение в / opt / www / yourapplication.
Затем сделайте SMB-долю / opt / www только для localhost
затем смонтируйте общий ресурс Samba в / var / www
Samba предназначена для общих ресурсов Windows, а общие ресурсы Windows не чувствительны к регистру, поэтому Samba позаботится о чувствительности к регистру за вас, сделав все внутренне НИЗКИМ.