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
Игорь, я правильно понял?
|