我在端口3100上运行Express.js(v 2.5.8)(节点v0.6.12)服务器。它由Nginx前端实现,它将http和https请求同时代理为端口3100.通过https在高速/节点上强制请求
我想通过https强制某些URL。下面是一个例子(应用程序是我的Express服务器):
app.get('/applyNow', ensureSec, secure.showApplication);
ensureSec的是,我试图用它来检查,如果连接是通过SSL功能:
function ensureSec(req, res, next) {
if (req.session.ssl == true) {
return next();
} else {
req.session.ssl = true;
res.redirect('https://' + url.parse(req.headers.referer).host +
url.parse(req.url).pathname);
}
}
重定向的作品,但节点(在它超时后)抛出一个错误,说'不能GET/applyNow
什么是重定向到ssl的正确方法?
这看起来对我来说是正确的解决方案。谢谢! – 2012-03-15 22:01:10
X-Forwarded-Proto标题确实是一个隐藏的宝石。修正它,谢谢。 – 2015-04-12 07:45:14