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 相关文章推荐
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
Jul 26 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
Jan 26 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
js异步编程小技巧详解
Aug 14 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 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语法(4)
2006/10/09 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
php 中英文语言转换类代码
2011/08/11 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
基于vue实现分页效果
2017/11/06 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
原生python实现knn分类算法
2019/10/24 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
家长会标语
2014/06/24 职场文书
学校教师读书活动总结
2014/07/08 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
教师继续教育反思周记
2015/06/25 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技