mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-03-01 01:20:49 +03:00
35 lines
630 B
Go
35 lines
630 B
Go
![]() |
package middleware
|
||
|
|
||
|
import (
|
||
|
"net/http"
|
||
|
"strings"
|
||
|
|
||
|
"github.com/gin-gonic/gin"
|
||
|
)
|
||
|
|
||
|
func RedirectMiddleware(basePath string) gin.HandlerFunc {
|
||
|
return func(c *gin.Context) {
|
||
|
// Redirect from old '/xui' path to '/panel'
|
||
|
redirects := map[string]string{
|
||
|
"panel/API": "panel/api",
|
||
|
"xui/API": "panel/api",
|
||
|
"xui": "panel",
|
||
|
}
|
||
|
|
||
|
path := c.Request.URL.Path
|
||
|
for from, to := range redirects {
|
||
|
from, to = basePath+from, basePath+to
|
||
|
|
||
|
if strings.HasPrefix(path, from) {
|
||
|
newPath := to + path[len(from):]
|
||
|
|
||
|
c.Redirect(http.StatusMovedPermanently, newPath)
|
||
|
c.Abort()
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
|
||
|
c.Next()
|
||
|
}
|
||
|
}
|