从HTTP重定向到HTTPS会导致无限重定向 - nodejs?

时间:2016-07-20 16:21:37

标签: node.js redirect express https openshift

我正在使用Express Framework。

我想将访问http://mypage.com的用户重定向到https://mypage.com

我试过这个中间件:

app.use(function(req,res,next){
    if(req.secure)
      next();
    else
      res.redirect('https://'+res.get('host')+res.originalUrl);
});

我也试过if(req.protocol == 'https')

这在当地环境中非常有效。当我访问https://localhost:3000

时,我被重定向到http://localhost:3000

但是,当我将其上传到OpenShift时,我会收到无限重定向错误。

可能出了什么问题?我的主要目的是重定向用户,始终查看 HTTPS

1 个答案:

答案 0 :(得分:0)

试试这个..

var express = require('express');
var requireHTTPS = require('https');    
var redirect = express();
var redirectServer = http.createServer(redirect);
redirect.use(function requireHTTPS(req, res, next) { 
if (!req.secure) {
 return res.redirect('https://' + req.headers.host + req.url);
}
next();
})
redirectServer.listen(3000);