location + error_page + url prefixes

Igor Sysoev is at rambler-co.ru
Fri Jan 30 23:54:48 MSK 2009


On Fri, Jan 30, 2009 at 11:36:09PM +0300, Igor Sysoev wrote:

> On Fri, Jan 30, 2009 at 08:57:26PM +0200, Maxim Yemelyanov wrote:
> 
> > ссылки на сайте имеют вид /язык/url. все такие url-ы пробрасываются на mongrel
> > пытаюсь создать локализованные сообщения об ошибках: если при запросе
> > /ru/bad-url от бекенда приходит не 200-й ответ, то отобразить
> > сообщение на русском и т.п.
> > 
> >   location / {
> >       ...
> >       if (!-f $request_filename) {
> >         proxy_pass http://mongrel;
> >         break;
> >       }
> >   }
> > 
> >   # нелокализованное сообщение об ошибке
> >   error_page   500 502 503 504  /500.html;
> >   location = /500.html {
> >     root   /path-to-public;
> >   }
> > 
> >   location /ru {
> >     error_page   500 502 503 504  /500_ru.html;
> >     error_page   404              /404_ru.html;
> >   }
> >   location /en {
> >     error_page   500 502 503 504  /500_en.html;
> >     error_page   404              /404_en.html;
> >   }
> > 
> > в результате при запросе к любой странице /ru/good-url возвращается
> > локализованное сообщение, даже если запрос идёт на рабочий url.
> > наличие только лишь директив error_page в location не должно вызывать ошибку?
> 
>       location /ru/ {
>           error_page   500 502 503 504  /500_ru.html;
>           error_page   404           =  @mongrel_ru;
>       }
> 
>       location @mongrel_ru {
>           proxy_pass http://mongrel;
> 
>           proxy_intercept_errors   on;
>           proxy_recursive_errors   on;

-           proxy_recursive_errors   on;
+           recursive_error_pages   on;

> 
>           error_page   404         /404_ru.html;
>           error_page   ...
>       }
> 
>       location /en/ {
>           error_page   500 502 503 504  /500_en.html;
>           error_page   404           =  @mongrel_en;
>       }
> 
>       location @mongrel_en {
>           proxy_pass http://mongrel;
> 
>           proxy_intercept_errors   on;
>           proxy_recursive_errors   on;

-           proxy_recursive_errors   on;
+           recursive_error_pages   on;

>           error_page   404         /404_en.html;
>           error_page   ...
>       }
> 
> 
> -- 
> Игорь Сысоев
> http://sysoev.ru

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list