跳转到内容

尾随斜杠

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

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

Add trailing slash 中间件会向请求 URI 添加尾随斜杠。

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

Remove trailing slash 中间件会从请求 URI 移除尾随斜杠。

e := echo.New()
e.Pre(middleware.RemoveTrailingSlash())
e := echo.New()
e.Use(middleware.AddTrailingSlashWithConfig(middleware.AddTrailingSlashConfig{
RedirectCode: http.StatusMovedPermanently,
}))

上面的示例会向请求 URI 添加尾随斜杠,并以 301 - StatusMovedPermanently 重定向。

AddTrailingSlashConfig · github.com/labstack/echo/[email protected]

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

包源码中的字段
字段类型说明源码
SkipperSkipperSkipper defines a function to skip middleware.L17
RedirectCodeintStatus code to be used when redirecting the request. Optional, but when provided the request is redirected using this code. Valid status codes: [300...308]L22
包源码中的函数
类型源码
func AddTrailingSlash() echo.MiddlewareFuncL29
func AddTrailingSlashWithConfig(config AddTrailingSlashConfig) echo.MiddlewareFuncL34

RemoveTrailingSlashConfig · github.com/labstack/echo/[email protected]

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

包源码中的字段
字段类型说明源码
SkipperSkipperSkipper defines a function to skip middleware.L82
RedirectCodeintStatus code to be used when redirecting the request. Optional, but when provided the request is redirected using this code.L86
包源码中的函数
类型源码
func RemoveTrailingSlash() echo.MiddlewareFuncL93
func RemoveTrailingSlashWithConfig(config RemoveTrailingSlashConfig) echo.MiddlewareFuncL98

尾部斜杠中间件执行重定向时,会先对路径中的控制字符进行百分号编码,再构造 Location 标头。