Add Redirect code
As Go Web server is not using Apache and therefore not using the “. htaccess” file, you must do your own redirects in Go. I can think of three redirects.
- Static files like sitemap.xml and robots.txt.
- Redirect historically deleted pages.
- Show a 404 page if the page does not exist at all.
In a separate Go file I put all the redirects, as it can grow to be rather big if you have cleaned your site and got many old paths.
func redirect(w http.ResponseWriter, r *http.Request) {
path := strings.Trim(r.URL.Path, "/")
switch path {
case "topnav", "sidenav":
http.Redirect(w, r, "/navigation", http.StatusMovedPermanently)
case "staticfiles":
http.Redirect(w, r, "/robots", http.StatusMovedPermanently)
case "go":
http.Redirect(w, r, "/golang", http.StatusMovedPermanently)
//notfound
default:
w.WriteHeader(http.StatusNotFound)
tpl.ExecuteTemplate(w, "notfound.html", "")
log("404: " + path)
}
}