In <199812251552.SAA08911@Gambit.Msk.SU> Felix Milovanov (felix@Gambit.Msk.SU) wrote:
>>
>> DA> Насколько я понимаю, это не совсем то что надо. Для file upload надо *полностью* запретить любое перекодирование, а не изменять режимы его работы. То есть вместо CharsetDisableForcedExpires+CharsetDisableAcceptCharset должно быть
>>
>> DA> CharsetDisable on
>>
>> Ребята -- вы чего ? У вас этот скрипт что -- никогда ничего пользователю не
>> сообщает ? И кроме файла туда никаких комментариев (такстовых, само собой :-)
>> не вводится ? Или я чего-то не понял ?
>>
>> Есть же специально на этот случай директива CharsetRecodeMultipartForms off
>> и Perl API к mod_charset'у !
>>
FM> Упс... а такая уже появилась?!! А почему широкая обчественность об
FM> етом не была оповещена ?!! :-))
Ну я, эта, не знаю чем "широкая общественность" в апреле занималась, но вот:
-- cut --
PL23.0, Apache 1.2.6, 4 Apr 1998, Alex Tutubalin
1. Добавлены директивы для манипулирования поведением сервера в зависимости
от вида запроса:
CharsetRecodeMultipartForms On|Off (умолчание - On) - в(ы)ключает перекодировку
для запросов с Content-Type: multipart/form-data. Это лечит частный случай
file uploads - если вы ожидаете upload двоичных файлов, которые перекодировать
нельзя, то эта директива помогает эту перекодировку выключить. При этом
переменные CHARSET, SOURCE_CHARSET и так далее доступны из скрипта
(в отличие от CharsetTurnOff On)
CharsetRecodeMethodsIn GET POST PUT ALL NONE (можно указывать любое число этих
слов) - позволяет выборочно включить/выключить перекодировку данных, полученных
от клиента в зависимости от HTTP Method. Запрос типа HEAD рассматривается
(как и в оригинальном Apache) как запрос типа GET. Все прочие методы
(DELETE,CONNECT,OPTIONS,TRACE) не требуют перекодировки.
CharsetRecodeMethodsOut GET POST PUT ALL NONE - делают аналогичное включение/
выключение перекодировки для потока сервер-клиент. Если для
данного запроса перекодировка вывода выключена, то Content-Type: .. charset=,
Expires, Vary не выдаются. Переменные CHARSET и SOURCE_CHARSET доступны
скрипту даже при выключенной перекодировке.
Я не объединил CharsetRecodeMethods* в одну директиву по тривиальной причине -
допустим, мы имеем скрипт, который получает нетривиальные данные, но
отдает пользователю "обычный" HTML (IMHO, обычное дело), в таком случае
можно переложить часть нагрузки по перекодировке output (и установке корректных
headers) со скрипта на сервер.
2. Configuration и Configuration.tmpl сделаны идентичными. Иначе предложение
от make: "скопируйте Configuration.tmpl в Configuration" приводит к конфузам
-- cut --
"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.