Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-rus] грабли с русскими буквами в URL



Hi!

 alr> Можно и нафиг. Хозяин -- барин. Но IMHO есть [относительно] простое
 alr> решение: имена файлов в каталоге записываются в той же кодировке, в какой
 alr> хранится содержимое файлов для "обычных" файлов (так как в Unix-мире
Понятие "обычный файл" (i.e. CharsetSourceEnc) может быть не определено.

 alr> P.S. Просто как-то постепенно всюда налаживается использование русских
 alr> букв в именах файлов (MARS_NWE с моей подачи перекодирует имена файлов из
 alr> cp866 в koi8-r и обратно; Linux 2.1.x перекодирует имена файлов на VFAT'е
 alr> (из cp866 или Unicode)
Но ведь у вас не так ? Содержимое файлов - в cp1251, содержимое каталога - 
koi8-r, разве нет ?

 alr> P.P.S. Кстати как же существующий httpd догадался -- куда и как
 alr> перекодировать? Догадался он, правда, поздновато, но ведь правильно!
В смысле ? Кодировка клиента - как обычно, кодировка файла - скорее всего по
CharsetSourceEnc. Там же (как я помню) filename тоже перекодируется, как ни 
смешно, но слишком поздно.

В-общем, я увидел пока такие вот проблемы:
1) Единственное место, куда вписывается это хозяйство - это на этап URL 
rewriting. Но на этом этапе кодировка клиента еще не определена. При этом,
перемещение определения кодировки клиента на эту фазу тоже делать не хочется
(определение кодировки в последнюю фазу вызвано тем, что сначала хочется
дождаться всех internal-redirects). Это - принципиальная проблема.

2) Смена URL на ходу может привести к странной работе всяких Alias/RewriteRule
и так далее. Т.е. будет наблюдаться явная интерференция. Этой интерференции
почти нет _сейчас_ в реальной жизни т.к. никто не пишет Alias/Redirect
для одного URL'а. А тут будет такой неявный RewriteEngine для всех URL.

3) как это должно работать с транслитом мне вообще непонятно.

4) так же мне непонятна как это должно работать, например, если происходит
internal redirect и у нового URL уже другая кодировка CharsetFilename.

Резюме. У меня пока вопросов больше чем ответов. С удовольствием приму патч
и положу в директорию contrib, но если патч не будет иметь при себе ответов
на вопросы 1)..4), то снабжу его  нелицеприятным комментарием.


С уважением,Alex Tutubalin

--- GoldED 2.42.G1114+








Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.