【问题标题】:Redirect to HTTPS from HTTP results in infinite redirects - nodejs?从 HTTP 重定向到 HTTPS 会导致无限重定向 - nodejs?
【发布时间】:2016-11-23 23:03:32
【问题描述】:

我正在使用 Express 框架。

我想将访问我的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')

这在本地环境中非常有效。当我访问http://localhost:3000时,我被重定向到https://localhost:3000

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

可能出了什么问题?我的主要目的是让用户始终看到 HTTPS

【问题讨论】:

    标签: node.js redirect express https openshift


    【解决方案1】:

    试试这个..

    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);
    

    【讨论】:

    • is requireHTTPS 是 HTTPS 请求的包装器?
    • 是的..你可以在上面的代码中添加这个var requireHTTPS = require('https');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多