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 相关文章推荐
Mootools 1.2教程 输入过滤第二部分(字符串)
Sep 15 Javascript
jquery插件之easing 动态菜单
Aug 21 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
Aug 05 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 Javascript
鼠标经过出现气泡框的简单实例
Mar 17 Javascript
node简单实现一个更改头像功能的示例
Dec 29 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
JS实现纵向轮播图(初级版)
Jan 18 Javascript
JavaScript实现弹出窗口效果
Dec 09 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数组相关函数汇总
2015/03/24 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
图片按比例缩放函数
2006/06/26 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
详解django中自定义标签和过滤器
2017/07/03 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
普通大学毕业生自荐信范文
2014/02/23 职场文书
鸿星尔克广告词
2014/03/21 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
英文自荐信范文
2015/03/25 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书