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]

Re: [apache-rus] filenames charset



> > > > > > > При 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 ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ 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.