mod_rewrite не обращает внимание на регистр

Sheridan

Новичок
mod_rewrite не обращает внимание на регистр

Проблема - mod_rewrite передаёт гетом строковые данные файлу, но файл принимает их полностью в нижнем регистре. Пробовал передать те же самые данные через адресную строку - всё нормально, регистр соблюдён. Проблема именно в мод-реврайте. NC не ставил.

-~{}~ 22.07.05 19:15:

ну где же вы, профессора?

-~{}~ 22.07.05 20:14:

профессора закончились. даже на мануалы никто не посылает... хотя я уже сам их перерыл и не нашёл ответа... ну что ж - решайте вопросы, что лучше использовать - echo или print...

и ещё небольшой советик - напишите регулярное выражение для выбора из текста всех терминов, связанных с php, и подсветите их ссылками на мануалы. меньше работы будет у великих санитаров. удач.
 

MuXa247

Новичок
Re: mod_rewrite не обращает внимание на регистр

Автор оригинала: Sheridan
Проблема - mod_rewrite передаёт гетом строковые данные файлу, но файл принимает их полностью в нижнем регистре. Пробовал передать те же самые данные через адресную строку - всё нормально, регистр соблюдён. Проблема именно в мод-реврайте. NC не ставил.
Ты бы хоть строку RewriteRule привел и код где у тебя к нижнему регистру все приводится...
А то получается "скажи мне то, незнамо что"...
 

Sheridan

Новичок
Я довольно чётко выразился. Сюда подходит абсолютно ЛЮБОЙ пример на mod_rewrite.
 

Popoff

popoff.donetsk.ua
У меня та же проблема. Одни и те же скрипты, с одними и теми же файлами .htaccess и правилами RewriteRule (а у меня на сайте их пруд пруди) работают правильно на хостинге и в локальной версии, если сервер стоит под win98. Под WinXP все преобразуется в маленькие буквы. Есть подозрение, что это всего лишь глюк, который как-то связан с виндой. При включенном RewriteLog маленькие буквы показываются сразу, как будто сам запрос был с маленькими буквами.

-~{}~ 24.07.05 16:39:

Правда, еще разные версии Apache: под 98 стоит 1.3.29, а под XP поставил 1.3.32.
 

alpine

Новичок
Popoff
В виндавс регистр в названии файла/директории пофик, тоесть TEST.TXT = test.txt = Test.txt = TEst.txt. И все что работает с файловой системой в виндовс подчиняется этим же правилам.

-~{}~ 24.07.05 22:05:

Sheridan
По поводу твоих гет параметров посмотри на директиву:
RewriteMap и конкретно на MapSource может с этим связано ...

-~{}~ 24.07.05 22:08:

Конкретней здесь:
mod_rewrite
 

Popoff

popoff.donetsk.ua
alpine
при чем тут апач к виндовсу? %) И почему именно в нижний регистр? На диске dos-style имена, как мне известно, хранятся в верхнем регистре. А длинные имена хранятся в том регистре, в котором они были заданы и не преобразуются ни к нижнему, ни к верхнему регистру - нечувствительность к регистру имеет значение при сравнении, но не при задании имени файла: когда ты задаешь имя файла, ты всегда будешь видеть его в том регистре, в котором ты его задал. Не ясно, почему именно в этом месте они вдруг стали преобразовываться к нижнему регистру.

Использование mod_rewrite как минимум препдполагает, что URL имеет лишь очень отдаленное отношение к файловой системе, как, например, в нашем случае. URL первичен, а имя файла - это то, что мы получаем после преобразования URL. Я не против того, что для неучета регистра все следует преобразовать к одному из регистров, но это следовало бы делать НЕ до этапа преобразования URL-to-filename. Но даже в таком случае не ясно, почему это преобразование выполняет сам апач, а не низлежащая операционная система.

Это я к тому, что это все же глюк, даже в контексте использованной нечувствительной к регистру файловой системы, а не нечно само собой розумеющееся. Либо, если это не глюк, то есть какая-то настройка, которую мы никак не можем найти в документации.
 

alpine

Новичок
при чем тут апач к виндовсу? %) И почему именно в нижний регистр?
На диске dos-style имена, как мне известно, хранятся в верхнем регистре. А длинные имена хранятся в том регистре, в котором они были заданы и не преобразуются ни к нижнему, ни к верхнему регистру - нечувствительность к регистру имеет значение при сравнении, но не при задании имени файла: когда ты задаешь имя файла, ты всегда будешь видеть его в том регистре, в котором ты его задал. Не ясно, почему именно в этом месте они вдруг стали преобразовываться к нижнему регистру.
Ты вообще пост мой читал или смотрел?
ВНИМАНИЕ! Где я что-то говорил про преобразование к нижнему регистру?

Использование mod_rewrite как минимум препдполагает, что URL имеет лишь очень отдаленное отношение к файловой системе, как, например, в нашем случае. URL первичен, а имя файла - это то, что мы получаем после преобразования URL. Я не против того, что для неучета регистра все следует преобразовать к одному из регистров, но это следовало бы делать НЕ до этапа преобразования URL-to-filename. Но даже в таком случае не ясно, почему это преобразование выполняет сам апач, а не низлежащая операционная система.
Апач URL не преобразовывает. А вот mod_rewrite может преобразовывать директивами котрые я привел выше.
ВНИМАНИЕ! Я этого не утверждаю а предполагаю.
 

Sheridan

Новичок
вы углубились. я написал, что при обычном гете, который обрабатывает тот же апач - всё нормально. при модреврайтовом гете всё иначе. апачи сдесь явно не при чём.

насколько я понял, это либо не описанная в мануалах (по крайней мере найденных мною) настройка, либо глюк.
 

alpine

Новичок
baev
Кстати там порекомендовади чуваку проабгрейдится до 2.0.x и у него все заработало под виндавсом.
Sheridan
Так что может и тебе поставить Apache 2.0.x ?
 

Sheridan

Новичок
alpine
нет, нельзя (( на главном сервере стоит первый (хотя на фре), ко второму апачи переходить только из-за этого не стану. в принципе, я уже давно обошёл этот баг другими методами, но его причина мне была инетересна.

спасибо за ответы
 

Sheridan

Новичок
dim-dem, не смог найти настройку нужную, к сожалению. просто в базе сопоставил нужный текст с целочисленным ключом, а ключ передаёт модреврайт.

нужно обратиться в комьюнити, где обсуждается более низкий уровень программирования. там, я думаю, смогут объяснить популярно.
 
Сверху