首頁 >web前端 >js教程 >Express內HTTP如何導向至HTTPS

Express內HTTP如何導向至HTTPS

php中世界最好的语言
php中世界最好的语言原創
2018-06-07 09:41:052121瀏覽

這次帶給大家Express內HTTP如何導向至HTTPS,的注意事項有哪些,以下就是實戰案例,一起來看一下。

我本地測試時, HTTP使用3000連接埠, HTTPS使用443.

#同時監聽HTTP和HTTPS

##參考上一篇文章Express本地測試HTTPS

轉發所有GET請求

httpApp.get("*", (req, res, next) => {
  let host = req.headers.host;
  host = host.replace(/\:\d+$/, ''); // Remove port number
  res.redirect(`https://${host}${req.path}`);
});
相當於自己拼接上https的連結然後redirect. 此時瀏覽器會收到302 (MOVED_TEMPORARILY)狀態碼, 並重定向到HTTPS.

轉發所有請求

httpApp.all("*", (req, res, next) => {
  let host = req.headers.host;
  host = host.replace(/\:\d+$/, ''); // Remove port number
  res.redirect(307, `https://${host}${req.path}`);
});
注意這裡面有兩個修改:

  1. httpApp.get 改成了httpApp.all

  2. redirect時加上了第一個參數307 (TEMPORARY_REDIRECT)

只加上第一個修改的話, 重定向的時候不會保留Method, 導致POST請求變成了GET請求. 加上第二個修改就好了.

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Angularjs自訂指令在專案中如何使用

##怎麼操作JQuery元素

以上是Express內HTTP如何導向至HTTPS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn