我正在使用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 。
答案 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);