|
@@ -0,0 +1,34 @@
|
|
|
+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()
|
|
|
+ }
|
|
|
+}
|