1. ホーム
  2. redirect

[解決済み] Heroku NodeJS http to https ssl 強制リダイレクト

2022-11-09 03:11:23

質問

Node.jsにExpress.jsを搭載し、Herokuでアプリケーションを稼働させています。 https . に強制的にリダイレクトさせるためのプロトコルを特定するにはどうすればよいでしょうか? https をHeroku上のNode.jsで強制的にリダイレクトするには、どのようにプロトコルを識別するのですか?

私のアプリは、単に単純な http -サーバであり、Herokuが送信していることに(まだ)気づいていません。 https -リクエストを送信していることにまだ気づいていません。

// Heroku provides the port they want you on in this environment variable (hint: it's not 80)
app.listen(process.env.PORT || 3000);

どのように解決するのですか?

答えは、Herokuがプロキシを行う際に渡す 'x-forwarded-proto' というヘッダを使うことです。 (余談ですが、他にも便利なx-変数がいくつか渡されます。) を参照してください。 ).

私のコードです。

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

ありがとう、ブランドン。6時間の遅れを待っていたんだけど、自分の質問に答えてくれないんだ。