如何使用hapijs进行条件代理重定向?

时间:2015-10-16 17:40:30

标签: node.js reverse-proxy hapijs

我有以下路线代码:

server.route({
  method: 'GET',
  path: '/',
  handler: {
    file: './public/index.html'
  }
});
server.route({
  method: '*',
  path: '/gms/{f*}',
  handler: {
    proxy: {
      mapUri: function(request, callback){
        var resourceUri, url;
        resourceUri = request.url.path.replace('/gms/', '/');
        url = 'http://example.com:81/' + resourceUri;
        console.log('url: ', url);
        return callback(null, url);
      },
      passThrough: true,
      xforward: true
    }
  }
});
server.route({
  method: 'GET',
  path: '/{f*}',
  handler: {
    directory: {
      path: 'public',
      listing: 'true',
      index: ['index.html']
    }
  }
});

我希望hapi将/foo/bar请求重定向到public目录,如./public/foo/bar;但来自/gms/foo/bar的代理http://example.com:81/foo/bar

如果我删除第二个或第三个路由,剩余的声明将按预期工作。

我怎样才能使这两者都有效?

0 个答案:

没有答案