nginx переписать вопрос - PullRequest
0 голосов
/ 13 января 2009

Мне нужно переписать с nginx из /blah/.../3275 в / id / 3275, если второй файл существует, в противном случае я хочу передать его в apache. Вот моя (слабая) попытка

(...) обозначает несущественные вещи

if ($request_filename ~^/.../([0-9]+)/$) {
               if (-d /id/$1) {
                        rewrite ^/.../[0-9]+/([0-9]+)/$ /id/$1;
                }
        }

У кого-нибудь есть идеи

Ответы [ 2 ]

1 голос
/ 13 января 2009

Лучше всего сделать это с внутренней перепиской:

set $original_uri $uri;

location /blah/irrelevant_stuff {
   error_page 404 = @apache;
   rewrite ^/blah/irrelevant_stuff/([0-9]+)$ /id/$1;
}

location @apache {
   proxy_pass http://upstream$original_uri;
}
0 голосов
/ 15 января 2009

Приведенный выше ответ от Вулонга я по какой-то причине не смог заставить работать, но я все же получил его, используя

  if (!-e $request_filename) {
    proxy_pass http://apache$original_uri;
    break;
  }

, а не директива error_page. Та же идея в основном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...