Heroku Nodejs-将 HTTP 重定向到 HTTPS

Grz*_*icz 5 node.js progressive-web-apps

我正在研究Progressive Web App,当用 Lighthouse 测试它时,我得到:

不将 HTTP 流量重定向到 HTTPS

我的服务器在nodejs 上,在Heroku 上。我试图添加这段代码:

app.get('*',function(req,res,next){
  if(req.headers['x-forwarded-proto']!='https'){
    res.redirect(`https://${req.header('host')}${req.url}`)
  }else{
    next()
  }
})
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。有什么想法如何解决这个问题吗?

小智 1

监听 80 端口并重定向到 https

var http = require('http');
var server = http.createServer((req, res) => {
  res.writeHead(301,{Location: `https://${req.headers.host}${req.url}`});
  res.end();
});

server.listen(80);
Run Code Online (Sandbox Code Playgroud)