location + error_page + url prefixes
Igor Sysoev
is at rambler-co.ru
Fri Jan 30 23:36:09 MSK 2009
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;
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;
error_page 404 /404_en.html;
error_page ...
}
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list