Максим, большое спасибо. С патчем все работает как надо. А какова вероятность, что этот патч попадет в mainline?
2014-04-28 22:31 GMT+04:00 Maxim Dounin <[email protected]>: > Hello! > > On Mon, Apr 28, 2014 at 01:22:08PM +0400, Vadim Lazovskiy wrote: > > > Вопрос. Откуда берется домен в имени файла и как это побороть? > > Выглядит как баг regex location + alias + limit_except/if. > Собственно, для случая if он уже давно задокументирован на > http://wiki.nginx.org/IfIsEvil. > > Патч, видимо, какой-то такой: > > # HG changeset patch > # User Maxim Dounin <[email protected]> > # Date 1398709755 -14400 > # Mon Apr 28 22:29:15 2014 +0400 > # Node ID cf4f92f40290c9d3b8a8fb8cf836d3ebd16224f5 > # Parent 539635cb8e98063b116555bdfd0c5ccfbfa8f184 > Fixed alias in regex locations with limit_except/if. > > The ngx_http_map_uri_to_path() function uses clcf->regex to detect if > it's working within a location given by a regular expression. Its > behaviour was incorrect due to clcf->regex being false in implicit > locations > created by if and limit_except. Fix is to preserve clcf->regex within > implicit locations. > > diff --git a/src/http/modules/ngx_http_rewrite_module.c > b/src/http/modules/ngx_http_rewrite_module.c > --- a/src/http/modules/ngx_http_rewrite_module.c > +++ b/src/http/modules/ngx_http_rewrite_module.c > @@ -583,6 +583,7 @@ ngx_http_rewrite_if(ngx_conf_t *cf, ngx_ > clcf = ctx->loc_conf[ngx_http_core_module.ctx_index]; > clcf->loc_conf = ctx->loc_conf; > clcf->name = pclcf->name; > + clcf->regex = pclcf->regex; > clcf->noname = 1; > > if (ngx_http_add_location(cf, &pclcf->locations, clcf) != NGX_OK) { > diff --git a/src/http/ngx_http_core_module.c > b/src/http/ngx_http_core_module.c > --- a/src/http/ngx_http_core_module.c > +++ b/src/http/ngx_http_core_module.c > @@ -4597,6 +4597,7 @@ ngx_http_core_limit_except(ngx_conf_t *c > pclcf->limit_except_loc_conf = ctx->loc_conf; > clcf->loc_conf = ctx->loc_conf; > clcf->name = pclcf->name; > + clcf->regex = pclcf->regex; > clcf->noname = 1; > clcf->lmt_excpt = 1; > > > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best Regards, Vadim Lazovskiy
_______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
