diff --git a/cmd/common-main.go b/cmd/common-main.go index 3bd24d082..a56c5fbf9 100644 --- a/cmd/common-main.go +++ b/cmd/common-main.go @@ -150,7 +150,7 @@ func minioConfigToConsoleFeatures() { } } // pass the console subpath configuration - if value := env.Get(config.EnvBrowserRedirectURL, ""); value != "" { + if globalBrowserRedirectURL != nil { subPath := path.Clean(pathJoin(strings.TrimSpace(globalBrowserRedirectURL.Path), SlashSeparator)) if subPath != SlashSeparator { os.Setenv("CONSOLE_SUBPATH", subPath) @@ -649,6 +649,7 @@ func handleCommonEnvVars() { } globalBrowserRedirectURL = u } + globalBrowserRedirect = env.Get(config.EnvBrowserRedirect, config.EnableOn) == config.EnableOn } if serverURL := env.Get(config.EnvMinIOServerURL, ""); serverURL != "" { diff --git a/cmd/generic-handlers.go b/cmd/generic-handlers.go index fe53f1891..3d6d4daa7 100644 --- a/cmd/generic-handlers.go +++ b/cmd/generic-handlers.go @@ -152,7 +152,7 @@ func setBrowserRedirectMiddleware(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { read := r.Method == http.MethodGet || r.Method == http.MethodHead // Re-direction is handled specifically for browser requests. - if guessIsBrowserReq(r) && read { + if guessIsBrowserReq(r) && read && globalBrowserRedirect { // Fetch the redirect location if any. if u := getRedirectLocation(r); u != nil { // Employ a temporary re-direct. diff --git a/cmd/globals.go b/cmd/globals.go index 3a151d2e3..197402658 100644 --- a/cmd/globals.go +++ b/cmd/globals.go @@ -152,6 +152,9 @@ var ( // and it is automatically deduced. globalBrowserRedirectURL *xnet.URL + // Disable redirect, default is enabled. + globalBrowserRedirect bool + // This flag is set to 'true' when MINIO_UPDATE env is set to 'off'. Default is false. globalInplaceUpdateDisabled = false diff --git a/internal/config/constants.go b/internal/config/constants.go index c891892a9..f5ab2e152 100644 --- a/internal/config/constants.go +++ b/internal/config/constants.go @@ -62,6 +62,7 @@ const ( EnvMinIOCallhomeFrequency = "MINIO_CALLHOME_FREQUENCY" EnvMinIOServerURL = "MINIO_SERVER_URL" + EnvBrowserRedirect = "MINIO_BROWSER_REDIRECT" // On by default EnvBrowserRedirectURL = "MINIO_BROWSER_REDIRECT_URL" EnvRootDriveThresholdSize = "MINIO_ROOTDRIVE_THRESHOLD_SIZE" EnvRootDiskThresholdSize = "MINIO_ROOTDISK_THRESHOLD_SIZE" // Deprecated Sep 2023