0

如果第二个文件存在,我需要使用 nginx 从 /blah/.../3275 到 /id/3275 进行重写,否则我想将它交给 apache。这是我的(微弱的)尝试

(...) 代表不相关的东西

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

有没有人有任何想法

4

2 回答 2

1

最好通过内部重写来做到这一点:

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;
}
于 2009-01-13T03:47:58.377 回答
0

以上来自 wulong 的回答我由于某种原因无法工作,但我确实通过使用它来工作

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

而不是 error_page 指令。基本相同的想法

于 2009-01-14T21:08:55.140 回答