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

Denis F. Latypoff latypoff на yandex.ru
Пт Авг 26 04:34:54 UTC 2011


26.08.2011, 06:49, "Oleksandr V. Typlyns'kyi" <wangsamp at gmail.com>:
> 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&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