ПРОЕКТЫ 


  АРХИВ 


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



26.08.2011, 06:49, "Oleksandr V. Typlyns'kyi" <wangsamp@xxxxxxxxx>:
> 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
>
Я как раз тоже самое делал в самом SSI:

cat index.html
<!--#set var="orig_uri" value="$uri"-->
<!--#include file="included.html"-->

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

# wget -qO- "http://localhost/index.html?sdasd"; | less

/included.html
/index.html?sdasd
/index.html

За идею с конфигом спасибо. Только я вот не знаю
теперь - переносить ли все это дело в конфиг...

>   Важный момент - /included.html должен быть в другом location, а то иначе 
> set перепишет значение из $uri подзапроса.

Похоже, этих граблей в моем варианте нет.

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

Сразу нет ))

-- 
br, Denis F. Latypoff.

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


 




Copyright © Lexa Software, 1996-2009.