<div dir="ltr">Максим, Ð±Ð¾Ð»ÑŒÑˆÐ¾Ðµ ÑÐ¿Ð°ÑÐ¸Ð±Ð¾.<div><div>С Ð¿Ð°Ñ‚чем Ð²ÑÐµ Ñ€Ð°Ð±Ð¾Ñ‚ает ÐºÐ°Ðº Ð½Ð°Ð´Ð¾.</div></div><div>А ÐºÐ°ÐºÐ¾Ð²Ð° Ð²ÐµÑ€Ð¾ÑÑ‚ность, Ñ‡Ñ‚о ÑÑ‚от Ð¿Ð°Ñ‚ч Ð¿Ð¾Ð¿Ð°Ð´ÐµÑ‚ Ð² mainline?</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-28 22:31 GMT+04:00 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=""><br>
On Mon, Apr 28, 2014 at 01:22:08PM +0400, Vadim Lazovskiy wrote:<br></div>
<div class=""><br>
> Ð’опрос. ÐžÑ‚куда Ð±ÐµÑ€ÐµÑ‚ся Ð´Ð¾Ð¼ÐµÐ½ Ð² Ð¸Ð¼ÐµÐ½Ð¸ Ñ„айла Ð¸ ÐºÐ°Ðº ÑÑ‚о Ð¿Ð¾Ð±Ð¾Ñ€Ð¾Ñ‚ÑŒ?<br>
<br>
</div>Выглядит ÐºÐ°Ðº Ð±Ð°Ð³ regex location + alias + limit_except/if.<br>
Собственно, Ð´Ð»Ñ ÑÐ»ÑƒÑ‡Ð°Ñ if Ð¾Ð½ ÑƒÐ¶Ðµ Ð´Ð°Ð²Ð½Ð¾ Ð·Ð°Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ирован Ð½Ð°<br>
<a href="http://wiki.nginx.org/IfIsEvil" target="_blank">http://wiki.nginx.org/IfIsEvil</a>.<br>
<br>
Патч, Ð²Ð¸Ð´Ð¸Ð¼Ð¾, ÐºÐ°ÐºÐ¾Ð¹-то Ñ‚акой:<br>
<br>
# HG changeset patch<br>
# User Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>><br>
# Date 1398709755 -14400<br>
# Â  Â  Â Mon Apr 28 22:29:15 2014 +0400<br>
# Node ID cf4f92f40290c9d3b8a8fb8cf836d3ebd16224f5<br>
# Parent Â 539635cb8e98063b116555bdfd0c5ccfbfa8f184<br>
Fixed alias in regex locations with limit_except/if.<br>
<br>
The ngx_http_map_uri_to_path() function uses clcf->regex to detect if<br>
it's working within a location given by a regular expression. Â Its<br>
behaviour was incorrect due to clcf->regex being false in implicit locations<br>
created by if and limit_except. Â Fix is to preserve clcf->regex within<br>
implicit locations.<br>
<br>
diff --git a/src/http/modules/ngx_http_rewrite_module.c b/src/http/modules/ngx_http_rewrite_module.c<br>
--- a/src/http/modules/ngx_http_rewrite_module.c<br>
+++ b/src/http/modules/ngx_http_rewrite_module.c<br>
@@ -583,6 +583,7 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_<br>
  Â  Â clcf = ctx->loc_conf[ngx_http_core_module.ctx_index];<br>
  Â  Â clcf->loc_conf = ctx->loc_conf;<br>
  Â  Â clcf->name = pclcf->name;<br>
+ Â  Â clcf->regex = pclcf->regex;<br>
  Â  Â clcf->noname = 1;<br>
<br>
  Â  Â if (ngx_http_add_location(cf, &pclcf->locations, clcf) != NGX_OK) {<br>
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c<br>
--- a/src/http/ngx_http_core_module.c<br>
+++ b/src/http/ngx_http_core_module.c<br>
@@ -4597,6 +4597,7 @@ ngx_http_core_limit_except(ngx_conf_t *c<br>
  Â  Â pclcf->limit_except_loc_conf = ctx->loc_conf;<br>
  Â  Â clcf->loc_conf = ctx->loc_conf;<br>
  Â  Â clcf->name = pclcf->name;<br>
+ Â  Â clcf->regex = pclcf->regex;<br>
  Â  Â clcf->noname = 1;<br>
  Â  Â clcf->lmt_excpt = 1;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</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><div dir="ltr">
Best Regards,<br><div>Vadim Lazovskiy</div></div>
</div></div>