From: Sameer Ajmani Date: Wed, 1 Feb 2012 14:43:22 +0000 (-0500) Subject: godoc: fix redirect loop for URL "/". X-Git-Tag: weekly.2012-02-07~149 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=702151a2001763aa0b535304377b4b2415141c92;p=gostls13.git godoc: fix redirect loop for URL "/". R=golang-dev, bradfitz, rsc, adg CC=golang-dev https://golang.org/cl/5606045 --- diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index e3ac3d2bd1..a4a0d8333c 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -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 }