<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=KOI8-R" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Vladislav пишет:
<blockquote cite="mid:4B49C87F.2070700@gmail.com" type="cite">
<meta content="text/html;charset=KOI8-R" http-equiv="Content-Type">
<title></title>
Vladislav пишет:
<blockquote cite="mid:4B49BA85.4030206@gmail.com" type="cite">
<meta content="text/html;charset=KOI8-R" http-equiv="Content-Type">
<title></title>
Sergey Shepelev пишет:
<blockquote
cite="mid:2d8fb9951001100215y126f2c2mc9b71f6aa90e8a04@mail.gmail.com"
type="cite">
<blockquote type="cite">
<pre wrap="">rewrite ^ <a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://www.mydomain.nl$request_uri">http://www.mydomain.nl$request_uri</a> permanent;
А чем равно ^ в данном случае, если запрос <a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://www.site.com/foo?param">http://www.site.com/foo?param</a>
???
</pre>
</blockquote>
<pre wrap=""><!---->
Почитайте какое-нибудь введение в регекспы.
^ это начало строки.
</pre>
</blockquote>
Балиннн, я знаю, что это начало строки (или ее конец, как сказал
Игорь), не суть важно. Важно, что это строка целиком.<br>
Знаю и что такое регулряные выражения. <br>
<br>
Я спрашиваю в контексте определения, что такое URI в документации nginx!<br>
<br>
Если в запросе <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/foo?param">http://www.site.com/foo?param</a>,
URI - это <b>foo</b>. То
тогда <b>^ = foo</b> <br>
Тогда что на что на что перезаписывается (делается rewrite) в
выражении <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://mydomain.nl$request_uri">http://mydomain.nl$request_uri</a>?
<br>
Вот в чем вопрос?<br>
<br>
Игорь написал следующее, но я че-то не могу до конца осознать - <br>
<br>
Цитата:<br>
<blockquote>
<pre wrap="">Если в строке замены указаны аргументы, то предыдущие аргументы запроса
добавляются после них. Можно отказаться от этого добавления, указав в конце
строки замены знак вопроса:
rewrite ^<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>users<span
class="moz-txt-tag">/</span></i>(.*)$ /show?user=$1? last;</pre>
</blockquote>
Попробую еще раз.<br>
<br>
Делается запрос <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/foo?param">http://www.site.com/foo?param</a><br>
Надо сделать rewrite на <a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://site.com/foo?param">http://site.com/foo?param</a><br>
<br>
Пишем правило:<br>
<pre wrap="">rewrite ^ <a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://site.com/$request_uri">http://site.com/$request_uri</a>? <tt><tt>permanent;</tt></tt>
Здесь ^ = foo, которое перезапиывается на
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://site.com/$request_uri">http://site.com/$request_uri</a>?
в конце выражения стоит знак вопроса, значит
предыдущие аргументы запроса <b>не</b> добавляются после них.
Не понятно что не добавляется после чего.
В итоге получаем, что foo перезаписывается в
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://site.com/$request_uri">http://site.com/$request_uri</a>?, а результирующая строка принимает вид
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/http://site.com/$request_uri">http://www.site.com/http://site.com/$request_uri</a>.
Извините, но я здесь ничего не понял.
Если кто может, расскажите подробно в чем фокус.
</pre>
</blockquote>
Кажется, до меня начинает доходить. <br>
<br>
Если в конце стоит знак вопроса (<a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://site.com/$request_uri">http://site.com/$request_uri</a>?),
то предыдущие аргументы запроса (предыдущие до foo), а именно <a
moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/foo?param">http://www.site.com/</a><br>
не добавляются в результирующую строку.<br>
<br>
Если бы они (предыдущие аргументы запроса) добавлялись, мы имели бы - <br>
<pre wrap=""><a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/http://site.com/$request_uri">http://www.site.com/http://site.com/$request_uri?param </a>
(вверху, в предыдущем сообщении, не дописал ?param)
Поскольку они не добавляются, то на выходе получаем -
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/http://site.com/$request_uri">http://site.com/$request_uri?param</a>
</pre>
</blockquote>
Т.е., согласно примеру получим - <a moz-do-not-send="true"
class="moz-txt-link-freetext" href="http://site.com/foo?param">http://site.com/foo?param</a><br>
где <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.site.com/http://site.com/$request_uri">$request_uri </a>=
foo<br>
<br>
<b>Игорь, я правильно понял?</b><br>
<br>
</body>
</html>