@unsweet

Как исключить изображения из правила в .htaccess?

В файле .htaccess прописано правило

#убираем заглавные буквы из ссылок
RewriteCond expr "%{tolower:%{REQUEST_URI}} =~ /(.*)/"
RewriteRule [A-Z] %1 [R=301,L]

Как исправить его, чтобы оно не касалось изображений, стилей и скриптов на сайте? Т.е. если ссылка будет на ABC.js или IMG.css, или Qrt.jpg, то правило не срабатывало бы.
  • Вопрос задан
  • 378 просмотров
Решения вопроса 1
search
@search
мама говорит что я особенный
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond expr "%{tolower:%{REQUEST_URI}} =~ /(.*)/"
RewriteRule [A-Z] %1 [R=301,L]


Хозяйке на заметку: заглавные буквы в именах файлов считается дурной практикой в мире веб разработки, потому что почти всегда сайт будет работать на линукс сервере, файловая система которого чувствительна к регистру. Т.е. /ABC.js и /abc.js будут восприниматься линуксом как разные файлы. Строчные буквы, в свою очередь, стали стандартом в адресах ресурсов и очень высока вероятность того что на каком-то из этапов ввода или обработки адреса, регистр будет потерян, как, например, в вашем случае.

Поэтому вместо того чтоб решать проблему путём модификации .htaccess, правильнее будет привести все имена файлов в файловой системе к малому регистру. Тогда любые запросы будут приводиться к малому регистру и файлы будут гарантированно доступны. Такое решение применяется один раз является стопроцентным, в отличие от решения по поддержанию имён файлов в разных регистрах, за которое придется платить не один раз.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы