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 获取字符串字节数的多种方法
Jun 02 Javascript
jquery 弹出层实现代码
Oct 30 Javascript
在JavaScript中获取请求的URL参数[正则]
Dec 25 Javascript
jQuery实用基础超详细介绍
Apr 11 Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
JS对象创建的几种方式整理
Feb 28 Javascript
Jquery异步上传文件代码实例
Nov 13 jQuery
Vue中实现回车键切换焦点的方法
Feb 19 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
PHP5 面向对象程序设计
2008/02/13 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
Popup弹出框添加数据实现方法
2017/10/27 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python实现键盘控制鼠标移动
2020/11/27 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python中with用法讲解
2020/02/07 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
游戏商店:Eneba
2020/04/25 全球购物
写给女生的道歉信
2014/01/14 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
小班上学期评语
2014/05/05 职场文书
小学教师师德承诺书
2014/05/23 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年文秘工作总结
2014/11/25 职场文书
初一军训感言
2015/08/01 职场文书
入团申请书格式
2019/06/20 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers