跳转到内容

尾随斜杠

所有核心中间件都位于 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/v5@fc41009

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

包源码中的字段
字段类型说明源码
Skipper Skipper Skipper defines a function to skip middleware. L17
RedirectCode int Status 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.MiddlewareFunc L29
func AddTrailingSlashWithConfig(config AddTrailingSlashConfig) echo.MiddlewareFunc L34

RemoveTrailingSlashConfig · github.com/labstack/echo/v5@fc41009

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

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

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