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 数组运用实现代码
Apr 13 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
推荐10个2014年最佳的jQuery视频插件
Nov 12 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
Nov 05 Javascript
javascript实现页面滚屏效果
Jan 17 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
JavaScript中使用import 和require打包后实现原理分析
Mar 07 Javascript
基于Proxy的小程序状态管理实现
Jun 14 Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 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/12/21 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
js继承的实现代码
2010/08/05 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
python通过socket查询whois的方法
2015/07/18 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python的setattr函数实例用法
2020/12/16 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
创业融资计划书
2014/04/25 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
标准发言稿结尾
2019/07/18 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MongoDB 常用的crud操作语句
2021/06/20 MongoDB