package http import ( "net/http" ) type URL interface { Hostname() string Port() string RequestURI() string String() string } func Redirect(w http.ResponseWriter, r *http.Request, url URL, code int) { http.Redirect(w, r, url.String(), code) } func RedirectHandler(url URL, code int) http.Handler { return http.RedirectHandler(url.String(), code) } func PermanentRedirect(w http.ResponseWriter, r *http.Request, url URL) { Redirect(w, r, url, http.StatusMovedPermanently) } func TemporaryRedirect(w http.ResponseWriter, r *http.Request, url URL) { Redirect(w, r, url, http.StatusFound) }