> > > > > > > При CharsetRecodeFilenames On имена перекодируются правильно,
> > > > > > > но при попытке скачать для русских имен файлов выдает "403
> > Forbidden",
> > > > > > > возможно, потому что
> > > > > > > "...проверка прав тоже производится для неперекодированного
> > имени..."
> > > > > >
> > Если перекодировать URL перед обработкой его Апачем
> > с помощью mod_rewrite (кстати, подскажите, как это написАть? ),
>
> Не знаю.
>
Я тут изобразил кое-что,
но оно зацикливается после первого же обращения из браузера.
Подскажите, в чем дело.
rewrite.log:
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (3) [per-dir /] add path-info postfix:
/home/testcgi/www ->
/home/testcgi/www/
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (3) [per-dir /] strip per-dir prefix:
/home/testcgi/www/ ->
home/testcgi/www/
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (3) [per-dir /] applying pattern '^(.+)$' to uri
'home/test
cgi/www/'
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (2) [per-dir /] rewrite home/testcgi/www/ ->
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (3) [per-dir /] add per-dir prefix: -> /
192.168.8.21 - - [21/Feb/2002:21:54:36 +0300]
[testcgi.vstu.edu.ru/sid#8293720][
rid#80f8038/initial] (1) [per-dir /] internal redirect with / [INTERNAL
REDIRECT
<Location / >
Options Indexes FollowSymLinks IncludesNOEXEC
AllowOverride None
Order allow,deny
Allow from all
#Default source (on-disk) charset
CharsetDefault windows-1251
CharsetSourceEnc koi8-r
CharsetRecodeFilenames On
RewriteEngine on
RewriteRule ^(.+)$ ${win-to-koi:$1} [L,NS]
</Location>
RewriteMap win-to-koi prg:/home/testcgi/cgi-bin/win2koi
RewriteLog "/var/log/apache/rewrite.log"
RewriteLogLevel 3
/home/testcgi/cgi-bin/win2koi:
#!/usr/bin/perl -w
$| = 1;
use strict;
no strict 'refs';
use Fcntl qw(:DEFAULT :flock);
BEGIN {
my $str=$0; $str=~ s|[^/]*$||; # Delete the filename: some non-"/", end of
lin
unshift (@INC, $str); #Dir of the current script
use CGI::Carp qw(carpout);
my $LOG=$str.'error-perl.log';
open($LOG, ">>$LOG") or die "Can't open $LOG: $!\n";
carpout($LOG);
}
while (<STDIN>) {
$_ =~
tr/\xFE\xE0\xE1\xF6\xE4\xE5\xF4\xE3\xF5\xE8-\xEF\xFF\xF0-\xF3\xE6\xE2\xF
C\xFB\xE7\xF8\xFD\xF9\xF7\xFA\xDE\xC0\xC1\xD6\xC4\xC5\xD4\xC3\xD5\xC8-\xCF\x
DF\x
D0-\xD3\xC6\xC2\xDC\xDB\xC7\xD8\xDD\xD9\xD7\xDA/\xC0-\xFF/;
print "http://testcgi.vstu.edu.ru/$_";
}
=============================================================================
= Apache-Rus@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-rus" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://apache.lexa.ru/mail-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.