将所有http请求重定向到帆js中的https

Redirect all http request to https in sails js

本文关键字:js 中的 https 重定向 http 请求      更新时间:2023-09-26

我正试图弄清楚如何在Sails JS中将所有HTTP请求重定向到HTTPS0.11.0。

我试过下面的代码,但没有用。

var express = require("express"),
     app = express();
app.get('*', function(req,res) {  
    if(req.isSocket){           
        return res.redirect('wss://' + req.headers.host + req.url)  
    }
    else{
        return res.redirect('https://' + req.headers.host + req.url)    
    }
}).listen(80);

您可以使用Sails中的http中间件来实现这一点。

在config/http.js文件中,向中间件对象添加这样的函数。

requireHttps: function(req, res, next) {
  if (!req.secure) {
    return res.redirect('https://' + req.get('host') + req.url);
  }
  return next();
},

或者像这样(如果你使用亚马逊弹性负载均衡器,它可以通过http与你的服务器通信):

requireHttps: function(req, res, next) {
  if (req.headers['x-forwarded-proto'] !== undefined && req.headers['x-forwarded-proto'] == 'http') {
    return res.redirect('https://' + req.get('host') + req.url);
  }
  return next();
},

然后简单地将"requireHttps"添加到中间件对象中的订单数组中,如下所示:

order: [
    'startRequestTimer',
    'cookieParser',
    'session',
    'passportInit',
    'passportSession',
    'bodyParser',
    'handleBodyParserError',
    'compress',
    'methodOverride',
    'poweredBy',
    '$custom',
    'requireHttps',
    'router',
    'www',
    'favicon',
    '404',
    '500',
],

我使用nginx进行重定向。nginx.conf文件中的配置

server {
        listen   80; 
        server_name example.com;
        rewrite     ^ https://example.com$request_uri? permanent;
}