Express的HTTP重定向到HTTPS的方法


Posted in Javascript onJune 06, 2018

我本地测试时, 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请求. 加上第二个修改就好了.

参考:

How do I redirect all unmatched urls with Express?
Node.js with Express: how to redirect a POST request

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript OOP类与继承
Nov 15 Javascript
jquery select下拉框操作的一些说明
Apr 02 Javascript
JavaScript 保存数组到Cookie的代码
Apr 14 Javascript
JS模拟面向对象全解(一、类型及传递)
Jul 13 Javascript
javascript中文本框中输入法切换的问题
Dec 10 Javascript
Javascript 浮点运算精度问题分析与解决
Mar 26 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 Javascript
JS简单验证上传文件类型的方法
Apr 17 Javascript
原生js二级联动效果
Jun 20 Javascript
微信小程序+云开发实现欢迎登录注册
May 24 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 #Javascript
微信小程序实现美团菜单
Jun 06 #Javascript
详解express + mock让前后台并行开发
Jun 06 #Javascript
vue element项目引入icon图标的方法
Jun 06 #Javascript
vue脚手架搭建过程图解
Jun 06 #Javascript
vue左右侧联动滚动的实现代码
Jun 06 #Javascript
Express本地测试HTTPS的示例代码
Jun 06 #Javascript
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
推荐一篇入门级的Class文章
2007/03/19 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
再论Javascript的类继承
2011/03/05 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
python实现合并两个排序的链表
2019/03/03 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
python实现随机加减法生成器
2020/02/24 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
python asyncio 协程库的使用
2021/01/21 Python
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
国庆阅兵观后感
2015/06/15 职场文书
单身证明范本
2015/06/15 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
七年级作文之秋游
2019/10/21 职场文书
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python