Господа!
Обнаружена следующаяя особенность при работе русского Apache
c modperl (Embedded Perl version 5.00404 for Apache/1.2.5 rus/PL22.2
Ben-SSL/1.13 mod_perl/1.07)
При выполнении следующего кода:
use CGI;
$query = new CGI;
print $query->header("text/html");
клиенту выдается в заголовке Content-Type ровно то, что указано в
аргументе метода header. (т.е. несмотря на CharsetMatchLanguage Off,
charset сервером не подставляется). Добавить в аргумент
charset=$ENV{'CHARSET'} не составляет труда, но что делать с BadAgents?
Насколько я понимаю, это связано с тем, что mod_perl подставляет себя
в Configuration после mod_charset.
Сталкивался ли кто-нибудь с этой проблемой, и если сталкивался, как ее
решил?
Я вижу следующие варианты
1. Перекомпилировать сервер так, чтобы порядок mod_perl и mod_charset
поменялся (мне страшно с этим экспериментировать, учитывая сколько труда
я потратил, чтобы связка Apacherus+ssl+mod_perl+ePerl вообще
компилилась)
2. Выставить какой-нибудь флаг в конфигурации модуля CGI::Apache или
Apache::Registry. (В документации я его пока не нашел)
3. Написать перловую процедуру, которая бы добывала информацию из
структуры request и генерировала корректный Content-Type
(вопрос скорее всего к Алексу - где искать информацию о BadAgent,
и видит ли вообще mod_perl те расширения в request, которые добавлены
при русификации).
"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.