Re: Как понимать термин URI в документации?
Vladislav
tvword на gmail.com
Вс Янв 10 15:30:55 MSK 2010
Vladislav пишет:
> Sergey Shepelev пишет:
>>> rewrite ^ http://www.mydomain.nl$request_uri permanent;
>>>
>>>
>>> А чем равно ^ в данном случае, если запрос http://www.site.com/foo?param
>>> ???
>>>
>>>
>>
>> Почитайте какое-нибудь введение в регекспы.
>>
>> ^ это начало строки.
>>
> Балиннн, я знаю, что это начало строки (или ее конец, как сказал
> Игорь), не суть важно. Важно, что это строка целиком.
> Знаю и что такое регулряные выражения.
>
> Я спрашиваю в контексте определения, что такое URI в документации nginx!
>
> Если в запросе http://www.site.com/foo?param, URI - это *foo*. То
> тогда *^ = foo*
> Тогда что на что на что перезаписывается (делается rewrite) в
> выражении http://mydomain.nl$request_uri?
> Вот в чем вопрос?
>
> Игорь написал следующее, но я че-то не могу до конца осознать -
>
> Цитата:
>
> Если в строке замены указаны аргументы, то предыдущие аргументы запроса
> добавляются после них. Можно отказаться от этого добавления, указав в конце
> строки замены знак вопроса:
>
> rewrite ^/users/(.*)$ /show?user=$1? last;
>
> Попробую еще раз.
>
> Делается запрос http://www.site.com/foo?param
> Надо сделать rewrite на http://site.com/foo?param
>
> Пишем правило:
> rewrite ^ http://site.com/$request_uri? permanent;
>
> Здесь ^ = foo, которое перезапиывается на
>
> http://site.com/$request_uri?
>
> в конце выражения стоит знак вопроса, значит
> предыдущие аргументы запроса *не* добавляются после них.
>
> Не понятно что не добавляется после чего.
>
> В итоге получаем, что foo перезаписывается в
> http://site.com/$request_uri?, а результирующая строка принимает вид
>
> http://www.site.com/http://site.com/$request_uri.
>
> Извините, но я здесь ничего не понял.
>
> Если кто может, расскажите подробно в чем фокус.
>
Кажется, до меня начинает доходить.
Если в конце стоит знак вопроса (http://site.com/$request_uri?), то
предыдущие аргументы запроса (предыдущие до foo), а именно
http://www.site.com/
не добавляются в результирующую строку.
Если бы они (предыдущие аргументы запроса) добавлялись, мы имели бы -
http://www.site.com/http://site.com/$request_uri?param
(вверху, в предыдущем сообщении, не дописал ?param)
Поскольку они не добавляются, то на выходе получаем -
http://site.com/$request_uri?param
*Игорь, я правильно понял?*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100110/e7f39cd6/attachment.html>
Подробная информация о списке рассылки nginx-ru