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延迟加载
Mar 09 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
详解JavaScript中this关键字的用法
May 26 Javascript
Webpack中css-loader和less-loader的使用教程
Apr 27 Javascript
vue如何从接口请求数据
Jun 22 Javascript
手把手教你使用TypeScript开发Node.js应用
May 06 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 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
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
javascript 闭包
2011/09/15 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
js实现前面自动补全位数的方法
2018/10/10 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
python实现将文本转换成语音的方法
2015/05/28 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
国际政治个人自荐信范文
2013/11/26 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
python实现简单聊天功能
2021/07/07 Python