素材巴巴 > 程序开发 >

Beego 路由 过滤和重定向

程序开发 2023-09-08 18:33:23

Beego路由过滤和重定向问题

问题

公司项目的Web服务器是用beego搭建,前端时间有需求将http请求重定向到 https请求,

修改

由于公司之前用 / 目录设置静态文件目录。
静态文件目录设置
在网上查到使用 Redirect 可以设置重定向
在这里插入图片描述
但发现 设置后并没有想象当中的转发成功 后来研究 平台源码发现
在这里插入图片描述
再执行 Redirect 函数前程序先去查找静态文件路由 导致设置没有生效 但发现了 filters 这个参数可以在执行查找静态文件前判断
在这里插入图片描述

完善

后在 router.go 页面添加重定向函数

var Filterhttp = func(ctx *context.Context) {//如果配置了自动跳转 并且是http请求 则执行自动跳转if redirect,_:=beego.AppConfig.Bool("RedirectHttps");redirect&&ctx.Request.TLS==nil{port:=util.ToString(beego.BConfig.Listen.HTTPSPort,"443")ip:=strings.Split(ctx.Input.Host(),":")ctx.Redirect(302,"https://"+ip[0]+":"+port+"/")}}
 

并且在 初始化里面添加 过滤项

beego.InsertFilter("/", beego.BeforeStatic, Filterhttp)
 

第一个参数 是要过滤的URL
第二个参数 执行过滤位置
第三个参数 我们写的回调函数

完美解决
在这里插入图片描述


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。