ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


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


  ПРОГРАММЫ 



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












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

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

Re: SSI переменные $uri и $request_ur i



Today Aug 26, 2011 at 04:52 Denis F. Latypoff wrote:

> >>  # cat included.html
> >>  <!--#echo var="uri"-->
> >>  <!--#echo var="request_uri"-->
> >>
> >>  # wget -qO- "http://localhost/index.html"; | less
> >>  /included.html
> >>  /index.html
> >>
> >>  Вот хотелось бы, чтобы uri тоже был 'index.html', то есть адрес
> >>  родительского запроса. Или это фича? Или бага? ))

> >   $uri, эта переменная равна текущему URI в запросе, он может отличаться от 
> > первоначального, например, при внутренних редиректах или при использовании 
> > индексных файлов.
> 
> Точно, спасибо. Похоже, получить первоначальный запрос без аргументов не 
> получится...

  Почему же? Достаточно его сохранить в другой переменной:
  location / { ssi on; set $orig_uri $uri;}
  location = /included.html { ssi on; }

  cat included.html
  <!--#echo var="uri"-->
  <!--#echo var="request_uri"-->
  <!--#echo var="orig_uri"-->

  wget -qO- "http://localhost/index.html?a=1&b=2";
  /included.html
  /index.html?a=1&amp;b=2
  /index.html

  Важный момент - /included.html должен быть в другом location, а то иначе set 
перепишет значение из $uri подзапроса.
  Или если это мифический shared hosting со сферическими непредсказуемыми URI, 
то можно и в rewrite style: 
  location / { ssi on; if ($orig_uri = "") {set $orig_uri $uri;} }

-- 
WNGS-RIPE

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.