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 相关文章推荐
通过正则表达式实现表单验证是否为中文
Feb 18 Javascript
javascript快速排序算法详解
Sep 17 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
jquery实现表单验证简单实例演示
Nov 23 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
Dec 20 Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
详解如何使用微信小程序云函数发送短信验证码
Mar 13 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
微信小程序转发事件实现解析
Oct 22 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
基于PHP文件操作的详解
2013/06/05 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
js中function()使用方法
2013/12/24 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
Python中 map()函数的用法详解
2018/07/10 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
最新会计专业求职信范文
2014/01/28 职场文书
企业宣传标语
2014/06/09 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
葬礼主持词
2015/07/02 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python