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 相关文章推荐
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
Oct 12 Javascript
JS TextArea字符串长度限制代码集合
Oct 31 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
不得不分享的JavaScript常用方法函数集(下)
Dec 25 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
Apr 15 Javascript
jquery实现自适应banner焦点图
Feb 16 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
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 include_path设置技巧分享
2011/07/03 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
python实现桌面壁纸切换功能
2019/01/21 Python
Python中拆分字符串的操作方法
2019/07/23 Python
零基础小白多久能学会python
2020/06/22 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
企业内部培训方案
2014/02/04 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
2014年减负工作总结
2014/12/10 职场文书
学校施工安全责任书
2015/01/29 职场文书
学校节水倡议书
2015/04/29 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书