跳转到内容

重定向

所有核心中间件都位于 middleware 包中:

import "github.com/labstack/echo/v5/middleware"

HTTPS redirect 中间件会把 HTTP 请求重定向到 HTTPS。例如,http://labstack.com 会重定向到 https://labstack.com。

e := echo.New()
e.Pre(middleware.HTTPSRedirect())

HTTPS WWW redirect 会把 HTTP 请求重定向到 www HTTPS。例如,http://labstack.com 会重定向到 https://www.labstack.com。

e := echo.New()
e.Pre(middleware.HTTPSWWWRedirect())

HTTPS NonWWW redirect 会把 HTTP 请求重定向到 non-www HTTPS。例如, http://www.labstack.com 会重定向到 https://labstack.com。

e := echo.New()
e.Pre(middleware.HTTPSNonWWWRedirect())

WWW redirect 会把 non-www 请求重定向到 www。例如,http://labstack.com 会重定向到 http://www.labstack.com。

e := echo.New()
e.Pre(middleware.WWWRedirect())

NonWWW redirect 会把 www 请求重定向到 non-www。例如,http://www.labstack.com 会重定向到 http://labstack.com。

e := echo.New()
e.Pre(middleware.NonWWWRedirect())
e := echo.New()
e.Use(middleware.HTTPSRedirectWithConfig(middleware.RedirectConfig{
Code: http.StatusTemporaryRedirect,
}))

上面的示例会以状态码 307 - StatusTemporaryRedirect 将 HTTP 请求重定向到 HTTPS。

RedirectConfig · github.com/labstack/echo/v5@5196b9b

字段说明由英文源码注释生成。

包源码中的字段
字段类型说明源码
Code int Status code to be used when redirecting the request. Optional. Default value http.StatusMovedPermanently. L21
包源码中的函数
类型源码
func HTTPSNonWWWRedirect() echo.MiddlewareFunc L80
func HTTPSNonWWWRedirectWithConfig(config RedirectConfig) echo.MiddlewareFunc L85
func HTTPSRedirect() echo.MiddlewareFunc L52
func HTTPSRedirectWithConfig(config RedirectConfig) echo.MiddlewareFunc L57
func HTTPSWWWRedirect() echo.MiddlewareFunc L66
func HTTPSWWWRedirectWithConfig(config RedirectConfig) echo.MiddlewareFunc L71
func NonWWWRedirect() echo.MiddlewareFunc L108
func NonWWWRedirectWithConfig(config RedirectConfig) echo.MiddlewareFunc L113
func WWWRedirect() echo.MiddlewareFunc L94
func WWWRedirectWithConfig(config RedirectConfig) echo.MiddlewareFunc L99
// Effective defaults applied when fields are left unset.
RedirectConfig{
Skipper: DefaultSkipper,
Code: http.StatusMovedPermanently,
}

HTTPS 重定向依赖 Context#Scheme()。使用公网地址的代理时,请配置可信地址段;否则可能出现重定向循环。