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

Vladislav tvword на gmail.com
Вс Янв 10 14:31:17 MSK 2010


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.

Извините, но я здесь ничего не понял. 

Если кто может, расскажите подробно в чем фокус. 

 








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


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