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连接access数据库的方法
Nov 17 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
JS实现上下左右对称的九九乘法表
Feb 22 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
vue实现侧边栏导航效果
Oct 21 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 Javascript
openlayers实现地图测距测面
Sep 25 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 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中SESSION使用中的一点经验总结
2012/03/30 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
php实现微信支付之企业付款
2018/05/30 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
python图像常规操作
2017/11/11 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Flask框架web开发之零基础入门
2018/12/10 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
python3爬虫中异步协程的用法
2020/07/10 Python
容易被忽略的Python内置类型
2020/09/03 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
销售辞职报告范文
2014/01/12 职场文书
高一历史教学反思
2014/01/13 职场文书
财产分割协议书范本
2014/11/03 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers