ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] [mod_accel] erroneous characters after protocol string



> > > > Два сервера с Апачами одинаковой версии 1.3.26
> > > > На одном установален mod_proxy, на другом mod_accel последний.
> > > > Сейчас имя town.samara.net указывает на mod_accel вариант.
> > > > Если мы в строке поиска пишем русскими предложение с
пробелами.
> > > > Выдается Бед Реквест, в логах
> > > > request failed: erroneous characters after protocol string
> > > > На старом сайте, с точно такими же модулями все Ok
> > > > можно прописать в hosts 195.128.128.26 town.samara.net и
> > убедиться.
> > > > Опять, что-то не так в пропатченном mod_rewrite ?
> > >
> > > А точно стоит 1.3.26, а не 1.3.27 ? Потому как во втором нужно
> > поставить
> > > ProtocolReqCheck off
> > > что бы урлы с пробелами работали.
> >
> > Оба 1.3.26

На POST запрос бекенд отвечает следующим образом

sub escape_spaces {
   my $self = shift;
   return $self->{text} && Apache::Util::escape_uri($self->{text});
}

sub dispatch_search {
  my $self = shift;

   if ($self->{r}->method eq 'POST') {
      my %params = $self->{r}->content;

      $self->{r}->header_out('Location', $self->{text} ?
"/search/${\($self->escape_spaces)}/" : $self->{referer});
      return REDIRECT;
   }
}

Что в старом варианте при запросе 'мама мыла раму' редиректило на
страницу
http://town.samara.net/search/%ec%e0%ec%e0%20%ec%fb%eb%e0%20%f0%e0%ec%
f3/
Которая успешно обрабатывалась бекендом

> А кто выдаёт фронтенд или бэкенд ?

В mod_accel варианте на бекенде в логах первого виртуального хоста на
редиректнутый запрос (не того хоста которому прдназначался запрос, а
первого, т.е. до разбора имени хоста дело не дошло)

[Mon Oct 21 13:41:26 2002] [error] [client 195.128.128.21] request
failed: erroneous characters after protocol string: GET /search/xec\xe0\xec\xe0 \xec\xfb\xeb\xe0 \xf0\xe0\xec\xf3/ HTTP/1.0

в логах на фронтенде

195.128.133.80 - - [21/Oct/2002:13:41:26 +0500] "GET
/search/%ec%e0%ec%e0%20%ec%fb%eb%e0%20%f0%e0%ec%f3/ HTTP/1.1" 400 384
"http://t
own.samara.net" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
Q312461)"

То есть получается что патченный mod_rewrite перекодировал урл в
другой формат, %20 заменил на обычные пробелы, чего бекенд уже не
понял.
--------------------------------------------
Sergey Polyakov               aka "BeerBong"
Chief of WebZavod     http://www.webzavod.ru
Tel. +7 (8462) 43-93-85 | +7 (8462) 43-93-86
mailto:alexei@samara.net

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.