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] =?KOI8-R?B?0MXSxcvPxMnSz9fLwSBkaXJlY3RvcnkgbG9va3Vw?=



Привет,

вот тут проблема, которую я не могу понять как правильно решить.
Если у нас идет обращение к директории (http://server/dir/)
то в зависимости от наличия там directoryindex, показывается
либо содержимое директории, вместе со всякими README, либо
index.html/shtml/cgi

И тут возникает дурацкая проблема - mod_dir делает несколько
(под)запросов к директории:
 - сначала к /dir/
 - потом (возможно - несколько) subrequest к /dir/index.NNN
     - если index.NNN найден, то на него делается redirect
     - если не найден, то управление отдается mod_autoindex,
       который красиво форматирует листинг директории.

Возникает (опять!) проблема многочисленных перекодировок URL/QUERY_STRING
и подобного. Т.е. в настоящий момент при наличии  index.cgi  и обращении
http://www.foo.ru/?arg=по+русски до index.cgi аргументы дойдут _дважды)
перекодированными.

Варианты решения проблемы (с недостатками):
 1) сохранять где-то оригинальный query-string и перекодировать каждый
  раз его. Проблемы - если аргументы меняются через mod_rewrite, то
  узнать об этом в mod_charset не представляется возможным.
 2) Не перекодировать запросы к каталогам никогда. Недостатки - 
   всякие readme и русские имена файлов будут показаны в кодировке сервера
 3) Перекодировать запросы к каталогам всегда. Двойная перекодировка
   запросов вида http://foo.org/?задница
 4) Предоставить администратору возможность выбора между 2) и 3)
    директивой вида CharsetRecodeDirListings On/Off
    Умолчание будет, наверное, On для совместимости с прошлыми конфигами

Как мне кажется, 4-й вариант предпочтителен


И еще. Я хочу выкинуть старые директивы типа CharsetTurnOff. Как сделать 
правильнее - ругаться в ErrorLog и работать, или ругаться на них при старте
и не работать, предлагая заменить на новые названия ?

Alex
 








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

[ 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.