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