20 lines
508 B
Go
20 lines
508 B
Go
package service
|
|
|
|
import "strings"
|
|
|
|
// NormalizeRoutePath removes only a complete configured router prefix. Paths
|
|
// such as /administrator must not be shortened when the prefix is /admin.
|
|
func NormalizeRoutePath(path, routerPrefix string) string {
|
|
prefix := strings.TrimSuffix(strings.TrimSpace(routerPrefix), "/")
|
|
if prefix == "" || prefix == "/" {
|
|
return path
|
|
}
|
|
if path == prefix {
|
|
return "/"
|
|
}
|
|
if strings.HasPrefix(path, prefix+"/") {
|
|
return strings.TrimPrefix(path, prefix)
|
|
}
|
|
return path
|
|
}
|