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&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
|