<div><div>Вот кусок моего конфига:<br><br>if ($request_method != POST) {<br>    &nbsp;&nbsp;rewrite ^(.*)$ /nonPOST? break;<br>}<br><br>location = /nonPOST {<br><br>    &nbsp;&nbsp;internal;<br><br>    &nbsp;&nbsp;if ($request_uri = &#39;/cgi-bin/index.pl&#39;) {<br>
       &nbsp;&nbsp;&nbsp;&nbsp;rewrite ^(.*)$ /index.pl? last;<br>    &nbsp;&nbsp;}<br><br>    &nbsp;&nbsp;if ($request_uri = &#39;/cgi-bin/index2.pl?action=do&#39;) {<br>       &nbsp;&nbsp;&nbsp;&nbsp;rewrite ^(.*)$ /index2.pl_action_do? last;<br>    &nbsp;&nbsp;}<br><br>    &nbsp;&nbsp;rewrite ^(.*)$ $request_uri break;<br>
<br>    &nbsp;&nbsp;proxy_pass              <a href="http://backend">http://backend</a>;<br>    &nbsp;&nbsp;proxy_redirect          off;<br>    &nbsp;&nbsp;proxy_set_header        Host    $host;<br>}<br><br>location = /index.pl {<br>    &nbsp;&nbsp;types { }<br>
    &nbsp;&nbsp;default_type text/html;<br>    &nbsp;&nbsp;root /site/apache/share/virthosts/clones.joblist.ru/Data/static/$host;<br>    &nbsp;&nbsp;internal;<br>}<br><br>location = /index2.pl_action_do {<br>    &nbsp;&nbsp;types { }<br>    &nbsp;&nbsp;default_type text/html;<br>
    &nbsp;&nbsp;root /site/apache/share/virthosts/clones.joblist.ru/Data/static/$host;<br>    &nbsp;&nbsp;internal;<br>}<br><br>То, что идея в текущем виде не работает (отвечает 405) - это пока отложим&nbsp;:)<br> <br>Но вот что я заметил</div>в логах на бэкенде  для запросов, не попавших под эти правила:<br>
<br>[31/Jan/2008:10:56:12 +0000] &quot;GET /cgi-bin/index2.pl%3faction=agency HTTP/1.0&quot; <br>[31/Jan/2008:11:11:44 +0000] &quot;GET /cgi-bin/story.pl%3faction=success HTTP/1.0&quot;<br> <br>конечно же апач говорит 404 на такие запросы. Почему экранируется знако вопроса? Похожий баг был исправлен в 0.5.35,&nbsp;у&nbsp;меня&nbsp;как&nbsp;раз&nbsp;эта&nbsp;версия.&nbsp;Это&nbsp;не&nbsp;может&nbsp;быть&nbsp;как-то связано?<br>
<br>        </div><br>