ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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

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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.