Привет,
на ftp://ftp.lexa.ru/pub/apache-rus/strong_redirect_26.1.diff
лежит патч, который обеспечивает нижеописанную функциональность.
Критиковать можно прямо в mailing list, автор патча на него подписан.
Моя критика - следующим письмом.
Alex
=============
Здравствуйте, Алексей!
Я тут написал патч к Russian Apache 1.3.1rusPL25.10 , который занимается
следующим:
при соответствующей конфигурации
1) если кодировка определена из Hostname/URL/Port (т.н. "сильные
критерии"), то отдает документ в требуемой кодировке
2) если кодировка определена из каких-то других соображений (UserAgent,...
- т.н. "слабые критерии"), то соответственно с маской (о ней-чуть ниже) и
установленной кодировкой делается редирект.
Маска: строка символов, в которые при редиректе
%h заменяется на имя хоста (кусок r->server->server_hostname до точки)
%d - на имя домена (все остальное)
%p - на порт, соответствующий данной кодировке (если такой найдется)
%c - на самый короткий алиас кодировки (koi для koi8-r и т.п.)
Заполненная маска вставляется между http(s):// и r->uri
Например, при маске %h%c.%d:%p/dir%c и запросе www.abc.spb.ru/index.html
(конфигурация - из поставки) редирект будет сделан на
http://wwwkoi.abc.spb.ru:8100/dirkoi/index.html
Правильность редиректа - на совести администратора.
Кроме того, введено еще несколько features;
1. Кодировка может встречаться не только в начале проверяемой строки, но
где угодно до символа из delim. (Замечание: если кодировка стоит в начале,
то все должно работать так же быстро, как и обычно)
2. charset_from_hostname, если r->hostname не NULL, пытается определить
кодировку из его. Я приделал это чисто для удобства, чтобы не писать
VirtualHost отдельно для всех кодировок, а написать просто один
ServerAlias
> From A.T: эту правку я уже вставил в PL26.1 и в патче ее уже нет
Конфигурация:
CharsetStrongRedirect On/Off
CharsetStrongRedirectMask <string> # default "%h%c.%d"
Примечания:
Философия и терминология взяты с http://www.csa.ru/CSA/CyrModules/
С уважением,
Антон Лухт,
luht@wplus.net
"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.