当我从subdomain.mymain.com接到电话时,我需要在mymain.com/somepath/subdomain的浏览器内容中显示。
我想在hapi-js中使用代理选项并执行上述操作。但随着 像
这样的代码config: {
handler: function(request, reply) {
let hostValue = request.headers.host;
let path = request.params.path;
let subdomain = hostValue.split('.')[0];
return reply.proxy({
uri: 'http://mymain.com/somepath/subdomain'
});
} \/\/end of handler
} //end of config
我无法实现它。只是页面是空的。这是基于角度的项目,并且不会为此执行角度路线。
但如果为url:subdomain.mymain.com做以下
return reply.proxy({
host: 'mymain.com',
port: 80,
protocol: "http"
});
工作正常。如何解决这个子域问题的任何线索?
答案 0 :(得分:0)
在您的示例中,您没有将subdomain
的值放入网址,将其更改为如下所示:
config: {
handler: function(request, reply) {
let hostValue = request.headers.host;
let path = request.params.path;
let subdomain = hostValue.split('.')[0];
return reply.proxy({
uri: 'http://mymain.com/somepath/'+subdomain
});
} \/\/end of handler
} //end of config
更改此行:
uri: 'http://mymain.com/somepath/subdomain'
到此:
uri: 'http://mymain.com/somepath/'+subdomain
或者,要清理一下,您可以尝试使用h2o2的mapUri
配置选项。像这样:
server.route({
method: 'GET',
path: '/',
handler: {
proxy: {
mapUri: function (request, callback) {
let hostValue = request.headers.host;
let subdomain = hostValue.split('.')[0];
console.log('proxying for', subdomain)
callback(null, 'http://mymain.com/somepath/'+subdomain);
}
}
}
});