Express的HTTP重定向到HTTPS的方法
我本地测试时, 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}`); });
注意这里面有两个修改:
- httpApp.get 改成了 httpApp.all
- 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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Express URL跳转(重定向)的实现方法
Express是一个基于Node.js实现的Web框架,其响应HTTP请求的response对象中有两个用于URL跳转方法res.location()和res.redirect(),使用它们可以实现URL的301或302重定向. res.location(path) res.location(path) 下面列举了几种,设置http响应头Location的方法 res.location('/foo/bar'); res.location('http://example.com'); res.lo
-
Express的HTTP重定向到HTTPS的方法
我本地测试时, 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
-
IIS7/IIS7.5 URL 重写 HTTP 重定向到 HTTPS的方法
1.有SSL证书,或者新购.目前很多免费的SSL证书 2.IIS7 / IIS 7.5 下绑定 HTTPS 网站 3.下载安装URL重写模块:Microsoft URL Rewrite Module 32位:http://download.microsoft.com/download/4/9/C/49CD28DB-4AA6-4A51-9437-AA001221F606/rewrite_x86_zh-CN.msi 64位:http://download.microsoft.com/download
-
.Net Core和jexus配置HTTPS服务方法
花了几天时间,看了好多篇博客,终于搞定了网站的HTTPS服务,借此写篇博客,来让有需要的朋友少走弯路. 一.环境介绍 1.Linux下在Docker容器中部署好了一个网站,该网站需要通过外部提供程序访问微软的登录平台,利用的是OAuth2.0协议,因此要求必须要使用SSL服务,也使得网站必须要加入HTTPS服务. 2.容器外,宿主机上通过jexus做端口转发.(本没打算用到jexus,但是看到情形不对,还是必须把它拉入进来) 3.HTTPS服务需要证书,通过在腾讯云上申请免费证书https://
-
Node.js + express实现上传大文件的方法分析【图片、文本文件】
本文实例讲述了Node.js + express实现上传大文件的方法.分享给大家供大家参考,具体如下: 对于大文件的上传我们首先要引入一个叫做 multer 的库: npm install --save multer 关于这个库,大家可以查阅官方文档: 点击跳转 https://www.npmjs.com/package/multer 我们先将库引入我们的项目中: var multer = require('multer') var upload = multer({ dest: 'upload
-
IIS与APACHE实现HTTP重定向到HTTPS
IIS7 从微软的官方网站下载HTTP重写模块,安装完毕之后重启IIS服务,之后打开IIS控制台,发现多了一个组件,双击"URL重写",在右边窗体中选择"添加规则",并添加一个空白规则,给规则自定义一个名字(名称自便),比如我这里叫"redirect to HTTPS",模式为:(.*),添加一个条件,条件输入为 {HTTPS},与模式匹配,模式为 ^OFF$,然后配置操作,操作类型为:重定向,重定向到URL为:https://{HTTP_HOS
-
Spring Boot实现Undertow服务器同时支持HTTP2、HTTPS的方法
前言 如今,企业级应用程序的高性能安全加密的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议.Spring Boot的web容器已经有容器可以支持HTTP2了,这个例子中选择了Undertow高性能服务器作为Spring Boot的web容器. What-什么是HTTP2 HTTP2是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY协议.由互联网工程任务组(IETF)的 Hypertext
-
node.js express捕获全局异常的三种方法实例分析
本文实例讲述了node.js express捕获全局异常的三种方法.分享给大家供大家参考,具体如下: 场景 express的路由里抛出异常后,全局中间件没办法捕获,需要在所有的路由函数里写try catch,这坑爹的逻辑让人每次都要多写n行代码 官方错误捕获中件间代码如下 app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!'); }); 测
-
详解nginx服务器http重定向到https的正确写法
http重定向到https使用了nginx的重定向命令.那么应该如何写重定向?之前老版本的nginx可能使用了以下类似的格式. rewrite ^/(.*)$ http://domain.com/$1 permanent; 或者 rewrite ^ http://domain.com$request_uri? permanent; 现在nginx新版本已经换了种写法,上面这些已经不再推荐. 下面是nginx http页面重定向到https页面最新支持的写法: server { listen 80
-
JavaScript实现强制重定向至HTTPS页面
有时候需要把网页强制切换成HTTPS,即使用户已经访问了HTTP的版本.原因可能是你不想让用户使用HTTP来访问,因为它不安全.要做到这个很简单,如果不想用PHP或者Apache的mod_rewrite来做这件事,用Javascript也可以.代码如下: <script type="text/javascript"> var targetProtocol = "https:"; if (window.location.protocol != target
-
linux tomcat配置https的方法
创建.keystore [root@centos apache-tomcat-6.0.37]# keytool -genkey -alias tomcat -keyalg RSA -keystore /root/tomcat/apache-tomcat-6.0.37/conf/.keystore 输入keystore密码: 再次输入新密码: 您的名字与姓氏是什么? [Unknown]: free4lab 您的组织单位名称是什么? [Unknown]: free4lab 您的组织名称是什么? [U
随机推荐
- Apache Thrift环境配置
- JSP数据库操数据分页显示
- Android 打开相册选择单张图片实现代码
- 详解ASP.NET Core应用中如何记录和查看日志
- JavaScript实现点击单选按钮改变输入框中文本域内容的方法
- ASP.NET Repeater 单双行数据换色示例
- JavaScript必知必会(五) eval 的使用
- Python 解析XML文件
- C语言数据结构递归之斐波那契数列
- node.js中的fs.fsync方法使用说明
- PHP的Yii框架中过滤器相关的使用总结
- yii实现图片上传及缩略图生成的方法
- c#友好显示日期 c#日期datetime使用方法
- jQuery源码解读之removeClass()方法分析
- node.js实现微信JS-API封装接口的示例代码
- js 动态为textbox添加下拉框数据源的方法
- Windows“回收站”里的设置技巧
- 由Apache 500错误引出的临时文件问题分析解决
- 7. Microsoft Online-Crash Control, version 6.0(微软在线崩溃控件)
- 解析PHP可变函数的经典用法