Не знаю как на счет rewrite&#39;а, но проблему с очисткой $query_string после 404&#39;ой ошибки мы в свое время решали примерно сл. образом:<br><br><span style="font-family: courier new,monospace;">location / {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   set $_query_string $query_string;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"># ...</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">location = /index {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   internal;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   fastcgi_param QUERY_STRING $_query_string;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   # ...</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;"># ...</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">error_page 404 =200 /index;</span><br style="font-family: courier new,monospace;"><br><div class="gmail_quote">26 ноября 2009 г. 18:47 пользователь mivlad <span dir="ltr">&lt;<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>&gt;</span> написал:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Приветствую.<br>
<br>
Обнаружилась довольно странная проблема в 0.7.62. На странице есть несколько ssi-блоков, обрабатываемых одним location через fastcgi. В этом location я пытался выполнять директивами mod_rewrite некоторые действия над $query_string -- разобрать её if&#39;ом и присвоить некоторые другие переменные в зависимости от результатов. Оказалось, что при первом подзапросе в $query_string пусто, несмотря на то, что параметры блоку передаются. В последующих же подзапросах переменная наблюдалась с правильным содержимым. При этом в fastcgi_param правильный $query_string попадал уже в первом позапрос!<br>


 е, а вот если сделать из этого location&#39;а return 404, то переменной не оказывается и в последующем подзапросе. То есть создаётся впечатление, что переменная &quot;материализуется&quot; лишь на какой-то из поздних стадий обработки подзапроса, после чего работает нормально.<br>


<br>
Кстати, разбором query_string я занялся из-за того, что $arg_... в этих условиях тоже не работали правильно.<br>
<br>
И ещё один момент -- когда основной запрос идёт к статичному файлу, всё вроде работает верно, проблема видимо наблюдается только когда страницу получаем через fastcgi.<br>
<br>
--<br>
С уважением,<br>
Михаил<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,25818,25818#msg-25818" target="_blank">http://forum.nginx.org/read.php?21,25818,25818#msg-25818</a><br>
<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</blockquote></div><br>