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获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
jquery.form.js用法之清空form的方法
Mar 07 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
js数组去重的hash方法
Dec 22 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
Vue-不允许嵌套式的渲染方法
Sep 13 Javascript
你知道JavaScript Symbol类型怎么用吗
Jan 08 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文本操作类
2006/11/25 PHP
PHP 简单日历实现代码
2009/10/28 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
PyCharm设置护眼背景色的方法
2018/10/29 Python
Python最小二乘法矩阵
2019/01/02 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
师德学习感言
2014/01/31 职场文书
入党综合考察材料
2014/06/02 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle