Welcome! Log In Create A New Profile

Advanced

Re: SSI include и пробел в URI

December 11, 2010 07:44AM
On Sat, Dec 11, 2010 at 03:38:38PM +0300, Дмитрий Дедюхин wrote:

>
>
>
> Sat, 11 Dec 2010 14:41:50 +0300 письмо от Igor Sysoev <igor@sysoev.ru>:
>
> > On Sat, Dec 11, 2010 at 10:24:09AM +0300, Дмитрий Дедюхин wrote:
> >
> > > Fri, 10 Dec 2010 19:23:51 +0300 письмо от Andrey Repin
> > <hell-for-yahoo@umail.ru>:
> > >
> > > > Здравствуйте, Уважаемый(-ая, -ое) Dmitry Dedukhin!
> > > >
> > > > DD> Столкнулся с проблемой.
> > > >
> > > > DD> <!--# set var="arg" value="1 1" -->
> > > > DD> <!--# include virtual="/backend?arg=$arg" -->
> > > >
> > > > DD> При обработке запроса в апаче получаю ошибку "request
> > failed:
> > > > erroneous
> > > > DD> characters after protocol string", т.к. в адресной
> > строке пробел
> > > > между
> > > > DD> единицами так и остался пробелом, а не превратился в %20
> > > >
> > > > DD> Это можно как-то обойти?
> > > >
> > > > Явно написать 1%201
> > > > Программа работает в предположении, что ты знаешь, чего от неё
> > хочешь.
> > >
> > > Дело в том, что значение переменной в данном случае возвращает сторонний
> > бэкенд.
> > > Конкретно в моем случае его можно научить делать encodeURI.
> > > Но мне кажется, что было бы неплохо, если бы nginx сам кодировал
> > переменные в include virtual
> >
> > Вообще-то странно, что стороннему бэкенду позволительно формировать SSI.
>
> Ничего странного.
> Он не совсем сторонний, это бекенд для быстрой проверки авторизации
>
> <!--# include virtual="/check_auth" -->
>
> который в случае авторизованности пользователя возвращает данные его профиля в виде SSI-инструкций вида
>
> <!--# set var="ID" value="1234567" -->
> <!--# set var="Nick" value="my_nick" -->
> <!--# set var="FullName" value="Some Name" -->
>
> Далее, в кеше nginx'а лежит закешированная страница с SSI-вставкой некешируемого блока
>
> <!--# if expr="$ID" -->
> <!--# include virtual="/backend?id=$ID&nick=$Nick&fullname=$FullName" -->
> <!--# endif -->
>
> Т.е. мы уже проверили авторизацию и передаем данные от авторизационного бекенда своему...Но получаем ошибку из-за наличия пробела в
> переменной FullName.
> Естественно, авторизационный бекенд можно научить возвращать данные в виде
>
> <!--# set var="FullName" value="Some Name" -->
> <!--# set var="FullName_encoded" value="Some%20Name" -->
>
> но это похоже скорее на костыль.

А если бэкенд уже прислал закодированное - кодирвать повторно ?


--
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

SSI include и пробел в URI

Dmitry Dedukhin December 10, 2010 08:34AM

Re: SSI include URI

Andrey Repin December 10, 2010 11:26AM

Re[2]: SSI include и пробел в URI

Дмитрий Дедюхин December 11, 2010 02:26AM

Re: SSI include и пробел в URI

Igor Sysoev December 11, 2010 06:42AM

Re[2]: SSI include и пробел в URI

Дмитрий Дедюхин December 11, 2010 07:40AM

Re: SSI include и пробел в URI

Igor Sysoev December 11, 2010 07:44AM

Re[2]: SSI include и пробел в URI

Дмитрий Дедюхин December 11, 2010 08:30AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 241
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready