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 相关文章推荐
innerText和textContent对比及使用介绍
Feb 27 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
基于JavaScript FileReader上传图片显示本地链接
May 27 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
Feb 05 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 Javascript
vue keep-alive的简单总结
Jan 25 Vue.js
vue穿梭框实现上下移动
Jan 29 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php curl选项列表(超详细)
2013/07/01 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
JsChart组件使用详解
2018/03/04 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
10款最好的Python开发编辑器
2019/07/03 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
勾股定理课后反思
2014/04/26 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
创业计划书之熟食店
2019/10/16 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android