use_file мне кажется наиболее удачным вариантом.<br><br><div class="gmail_quote">11 декабря 2008 г. 19:33 пользователь Igor Sysoev <span dir="ltr">&lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</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;"><div class="Ih2E3d">On Thu, Dec 11, 2008 at 10:19:58PM +0600, Pavel V. wrote:<br>
<br>
&gt; &nbsp; Мне кажется название директивы не слишком интуитивно понятным.<br>
&gt;<br>
&gt; &nbsp; Поскольку &quot;критикуя-предлагай&quot; хочу предложить переименовать её в<br>
&gt; &nbsp; что-то подобное &quot;try_files&quot;, поскольку по смыслу оно пытается найти<br>
&gt; &nbsp; и отдать файлы, а не занимается проверкой совпадений.<br>
<br>
</div>На данный момент у есть три варианта - try_file, test_file, use_file.<br>
<div><div></div><div class="Wj3C7c"><br>
&gt; &gt; Поскольку я уже не могу смотреть без боли на кучи реврайтов,<br>
&gt; &gt; то сегодня я изобрел революционную директиву file_match.<br>
&gt;<br>
&gt; &gt; Вместо<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp;location / {<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;if (-f $request_filename) {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;if (-f $request_filename/index.html) {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rewrite (.*) $1/index.html break;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;if (-f $request_filename.html) {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rewrite (.*) $1.html break;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;if (!-f $request_filename) {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;proxy_pass <a href="http://mongrel" target="_blank">http://mongrel</a>;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
&gt; &gt; &nbsp; &nbsp;}<br>
&gt;<br>
&gt; &gt; предлагается писать<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; location / {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file_match &nbsp;$uri &nbsp;$uri/index.html &nbsp;$uri.html<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @mongrel;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; location @mongrel {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass &nbsp;<a href="http://mongrel" target="_blank">http://mongrel</a>;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &gt; Для любителей Drupal/Joomla:<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; location / {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file_match &nbsp;$uri &nbsp;@drupal;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # то же самое, что<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &nbsp; &nbsp;error_page &nbsp;404 = @drupal; log_not_found off;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; location ~ \.php$ {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file_match &nbsp;$uri &nbsp;@drupal;<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass &nbsp; ...<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param &nbsp;SCRIPT_FILENAME /path/to$script_filename;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; location @drupal {<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass &nbsp; ...<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fastcgi_param &nbsp;SCRIPT_FILENAME /path/to/index.php;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; }<br>
&gt;<br>
&gt; &gt; file_match перебирает параметры и пытается найти соответствие на файловой<br>
&gt; &gt; системе. Если файл найден, то URI меняется на этот параметр и обработка<br>
&gt; &gt; делается в том же location&#39;е. Последний параметр - fallback.<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; С уважением,<br>
&gt; &nbsp;Pavel V. Rochnyack &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mailto:<a href="mailto:pavel2000@ngs.ru">pavel2000@ngs.ru</a><br>
&gt;<br>
<br>
</div></div><div><div></div><div class="Wj3C7c">--<br>
Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>С уважением, Борис Долгов.<br>icq 77556665<br>e-mail <a href="mailto:boris@dolgov.name">boris@dolgov.name</a><br>