About 301 Moved Permanently
When building a website, there is one inevitable thing: 301 permanent redirection. The cases that have to involve 301 includes: Redirection from www subdomain to naked domain or vise versa. Redirection from slashed pretty URL to unslashed URL or vise versa. 301 is easy to implement with Go: func redirect301(w http.ResponseWriter, url string) { w.Header().Set("Location", url) w.WriteHeader(http.StatusMovedPermanently) } There is one more thing that needs attention: The root path of a domain always contains a slash (GET / in HTTP request), regardless the user enters the slash or not, so the root path needs no redirection. ...