Re: Как понимать термин URI в документации?

Vladislav tvword на gmail.com
Вс Янв 10 15:37:27 MSK 2010


Vladislav пишет:
> 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
>   
Т.е., согласно примеру получим - http://site.com/foo?param
где $request_uri = foo

*Игорь, я правильно понял?*

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100110/44bccd80/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru