Максим, спасибо за разъяснение! <div><div><div><br><div class="gmail_quote">9 января 2013 г., 15:36 пользователь Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<div class="im"><br>
On Wed, Jan 09, 2013 at 02:26:36PM +0300, Oleg Malaphey wrote:<br>
<br>
> Добрый день!<br>
><br>
> Подскажите пожалуйста, должна ли работать кастомная страница error_page для<br>
> return 40x в блоке if? Если нет, то почему?<br>
><br>
> Например следующая конфигурация будет отдавать стандартную страницу ошибки<br>
> nginx 403 :<br>
><br>
>         error_page 403 /m/403.html;<br>
><br>
>         if ( $request_uri ~* /.svn/) {<br>
>                 return 403;<br>
>         }<br>
<br>
</div>После первого возврата 403 - nginx, в соответствии с error_page,<br>
выполняет внутреннее перенаправление на /m/403.html.  Однако при<br>
обработке запроса к /m/403.html снова случается 403 (потому что<br>
опять срабатывает тот же if, ибо $request_uri - это uri исходного<br>
запроса), и возвращается стандартная ошибка (ибо одна попытка<br>
перейти по error_page уже была).<br>
<br>
Так что - всё работает, как и должно.  Просто происходит то, что<br>
написано, а не то, что имелось в виду.<br>
<div class="im"><br>
> А вот конфигурация с использованием location уже отдаст кастомную страницу<br>
> ошибки (/m/403.html):<br>
><br>
>         error_page 403 /m/403.html;<br>
><br>
>         location ~* /.svn/ {<br>
>                 return 403;<br>
>         }<br>
<br>
</div>Так и имеет смысл делать.  Это заодно решит проблему в проверке<br>
выше - она тривиально обходится с помощью %XX.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.com/support.html" target="_blank">http://nginx.com/support.html</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Best Wishes,<br>
Oleg Malaphey
</div></div></div>