On Tue, Feb 02, 1999 at 11:26:52AM +0600, Eugene B. Byrganov wrote:
>
> Я еще пока не вытащил (в процессе), но два вопроса по теории:
> Происходит ли нормализация перед редиректом по кодировке? и
Если вопрос про удаление dirprefix, то оно происходит при
конфигураци вида
CharsetAutoRedirect koi8-r http://www.lexa.ru/koi8-r
CharsetAutoRedirect windows-1251 http://www.lexa.ru/windows-1251
Если один AutoRedirect на порт, а второй на директорию, то
имеющийся код вполне может выдать URL вида
http://www.lexa.ru:8101/koi8-r (который будет иметь кодировку в
соответствии с CharsetSelectionOrder).
Штука там в проверке "каноничности" URL. Т.е. для
CharsetAutoRedirect windows-1251 http://www.lexa.ru/windows-1251
и кодировки клиента cp1251 перекодировки не происходит если
у запрошенного URL совпадают сервер, порт и префикс директории
Для CharsetAutoRedirect windows-1251 http://www.lexa.ru:8101/
префикс директории не задан и соответствено, не проверяется. Поэтому
при обращении к http://www.lexa.ru:8101/koi8-r/file.html
URL считается каноническим и редирект
не выдается. Возможно, это стоит сделать регулируемым.
> второе - какой код у редиректа?
Пока - 301. Я задумался и решил, что для картинок 301 - это
правильно, а для текстов лучше, наверное, 302.
> И еще, AutoRedirect прикладывается всегда - независимо от языка документа?
Да. Более того, AutoRedirect прикладывается как только определен
charset. Т.е. обращение к /dir/ обычно выливается в request к /dir/
и subrequest к /dir/index.html. С моим кодом уже обращение к /dir/
(где никакого языка еще нет) приводит к редиректу если он включен.
Можно переделать, скажите как
На самом деле, я сейчас заинтересован в конфигурациях/скриптах/итп
которые работают с этими редиректами плохо. Я почти уверен, что всякие
тонкие вещи я просто не заметил.
И еще сразу. Этот код рассчитан на случаи, когда все виртуальные
серверы (win-www,koi-ww и так далее) сконфигурированы одинаково. Если
это не так, то welcome to endless loop :)
Alex
"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.