blob: eb7434830720a565cca74f1737f306b2568d8a94 [file] [log] [blame]
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build linux
package main
import (
"net/http"
"strings"
)
func insecureRedirectHandler() http.Handler {
return http.HandlerFunc(insecureRedirectDispatch)
}
func insecureRedirectDispatch(w http.ResponseWriter, r *http.Request) {
if !strings.HasPrefix(r.URL.Path, "/insecure/") {
http.Error(w, "path does not start with /insecure/", http.StatusInternalServerError)
return
}
url := *r.URL
url.Scheme = "http" // not "https"
if url.Host == "" {
url.Host = r.Host
}
url.Path = strings.TrimPrefix(url.Path, "/insecure")
http.Redirect(w, r, url.String(), http.StatusMovedPermanently)
}