34 lines
887 B
Go
34 lines
887 B
Go
// Package utils 提供通用的工具函数和辅助类型。
|
||
//
|
||
// 包含内部工具函数,用于处理内部逻辑。
|
||
//
|
||
// 作者:xfy
|
||
package utils
|
||
|
||
import "github.com/valyala/fasthttp"
|
||
|
||
const (
|
||
// InternalRedirectKey 内部重定向标记
|
||
InternalRedirectKey = "__internal_redirect__"
|
||
)
|
||
|
||
// SetInternalRedirect 标记请求为内部重定向
|
||
func SetInternalRedirect(ctx *fasthttp.RequestCtx, targetPath string) {
|
||
ctx.SetUserValue(InternalRedirectKey, targetPath)
|
||
}
|
||
|
||
// IsInternalRedirect 检查是否为内部重定向
|
||
func IsInternalRedirect(ctx *fasthttp.RequestCtx) bool {
|
||
return ctx.UserValue(InternalRedirectKey) != nil
|
||
}
|
||
|
||
// GetInternalRedirectPath 获取内部重定向目标路径
|
||
func GetInternalRedirectPath(ctx *fasthttp.RequestCtx) string {
|
||
if v := ctx.UserValue(InternalRedirectKey); v != nil {
|
||
if s, ok := v.(string); ok {
|
||
return s
|
||
}
|
||
}
|
||
return ""
|
||
}
|