4

Heroku で ExpressJS/AngularJS サイトをホストしており、Express を使用してすべての非 https リクエストを https バージョンにリダイレクトしています。

私の問題は、ホームページをリダイレクトしたくないということです。それ以外はすべてそうです。https リダイレクトなしでホームページを提供したいだけです。Expressでこれを行う方法はありますか?

どうもありがとう!

app.get('*',function(req,res,next){
    if( req.headers['x-forwarded-proto'] != 'https' )
        res.redirect('https://mydomain.com'+req.url)
    else
        next() /* Continue to other routes if we're not redirecting */
})

app.use(express.static(__dirname));
app.listen(port);
4

2 に答える 2

4
app.all('*', function(req, res, next){
  if(req.path === '/'){
    next();
  } else if(req.secure){
    next();
  } else {
    var port = 443;  // or load from config
    if(port != 443){
      res.redirect('https://'+req.host+':'+port+req.originalUrl);
      console.log('redirecting to https://'+req.host+':'+port+req.originalUrl);
    } else {
      res.redirect('https://'+req.host+req.originalUrl);
      console.log('redirecting to https://'+req.host+req.originalUrl);
    };
  };
});
于 2013-07-26T14:45:14.780 に答える
0
if (process.env.DEVMODE == 'dev'){
    if( req.headers['x-forwarded-proto'] != 'https' )
        if !(req.url == homeURL)
           res.redirect('https://mydomain.com'+req.url)
    else
        next() /* Continue to other routes if we're not redirecting */
  } else {
        next();
  }
})
于 2013-07-26T14:06:45.430 に答える