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] Про Redirect



Привет,

В копилку народного опыта :). Опять-таки, если кто-то родит патч, который
делает функциональность, описанную в конце письма - приму с благодарностью.

И еще. StrongRedirect это не касается т.к. смены кодировки при StrongRedirect 
не происходит.

Alex

=============================================================================
* Forwarded by Alex Tutubalin (46:4912/1)
* From : Alex Tutubalin, 46:4912/1 (01 Sep 98 14:23)
* To   : oleg@sai.msu.su
* Subj : double translation again :=(
=============================================================================
Привет, Олег!

 oms> http://www.mian.ru/db/?mode=quick
 oms> vyberi iz selecta chto-nibud' i nazhmi poisk,
 oms> esli ty v koi-8 to vsye ok. Potom vybri WIN kodirovku i sdelay tozhe
 oms> sa,oe - poluchish' fig. A vsye potomu, chto peremennaya address
 oms> nepravil'no perekodirovalas'. Zamet', chto stoit yavnoe imya scripta
Это не двойная перекодировка, это понятно что происходит (мы обсуждали это 
где-то зимой или даже раньше). А происходит вот что:

1) Клиент приходит на www.mian.ru/db/?param=строка_в_koi8
2) он нажимает на кнопочку WIN
3) скрипт выдает редирект на www.mian.ru:1234/db/?param=строка_в_koi8
  (скрипт же параметры у Location: не перекодирует, правильно?)
4) Сервер перекодирует заголовок Location: из кодировки скрипта в текущую 
кодировку клиента (в нашем примере - koi8)
5) клиент приходит на www.mian.ru:1234/db/?param=строка_в_koi8
6) но сервер считает, что данные от клиента пришли в win, а не в koi
  и перекодирует их из win в кодировку скрипта

Лечение:
 1) или оставить кнопки выбора кодировки  только на начальных страницах,
    а когда идет уже реальная работа с базой (скриптами с русскими параметрами)
    не показывать их. Клиенту ведь не нужно менять кодировку раз в минуту,
    он выберет ее один раз при начале работы и все.
 2) или убрать перекодировку заголовков для этого скрипта, а все заголовки
    перекодировать самому в текущую кодировку клиента. При смене кодировки
    - перекодировать Location: в новую кодировку клиента


Я понимаю, какого решения хочешь ты - чтобы сервер распознавал заголовок 
Location и в случае, когда происходит Redirect на тот же сервер, но в другой 
кодировке делал описанные в пункте 2 преобразования.  Это невозможно сделать
корректно - сервер не очень хорошо себе представляет, какая кодировка будет у 
редиректа (i.e. для каждого метода определения "следующей" кодировки можно 
придумать конфигурацию для которой это не сработает)

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

=============================================================================







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

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