1
0
mirror of https://github.com/golang/go synced 2024-11-12 06:20:22 -07:00

godoc: fix redirect loop for URL "/".

R=golang-dev, bradfitz, rsc, adg
CC=golang-dev
https://golang.org/cl/5606045
This commit is contained in:
Sameer Ajmani 2012-02-01 09:43:22 -05:00
parent e280035fc1
commit 702151a200

View File

@ -499,7 +499,7 @@ func example_htmlFunc(funcName string, examples []*doc.Example, fset *token.File
for _, eg := range examples {
name := eg.Name
// strip lowercase braz in Foo_braz or Foo_Bar_braz from name
// strip lowercase braz in Foo_braz or Foo_Bar_braz from name
// while keeping uppercase Braz in Foo_Braz
if i := strings.LastIndex(name, "_"); i != -1 {
if i < len(name)-1 && !startsWithUppercase(name[i+1:]) {
@ -743,7 +743,11 @@ func applyTemplate(t *template.Template, name string, data interface{}) []byte {
}
func redirect(w http.ResponseWriter, r *http.Request) (redirected bool) {
if canonical := path.Clean(r.URL.Path) + "/"; r.URL.Path != canonical {
canonical := path.Clean(r.URL.Path)
if !strings.HasSuffix("/", canonical) {
canonical += "/"
}
if r.URL.Path != canonical {
http.Redirect(w, r, canonical, http.StatusMovedPermanently)
redirected = true
}