From b282a57667dab7f4b905b91a925f097fe0d1c48c Mon Sep 17 00:00:00 2001 From: Chris Broadfoot Date: Mon, 6 Mar 2017 20:52:45 -0800 Subject: [PATCH] godoc/redirect: allow trailing slashes for prefix handlers This allows URLs like golang.org/wiki/DevExp/, where before only golang.org/wiki/DevExp was accepted. Fixes golang/go#19432. Change-Id: Ie41a4fe1d1930fd947c1d0523060d08c7c6d6d39 Reviewed-on: https://go-review.googlesource.com/37882 Reviewed-by: Jaana Burcu Dogan --- godoc/redirect/redirect.go | 2 +- godoc/redirect/redirect_test.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/godoc/redirect/redirect.go b/godoc/redirect/redirect.go index b07d97f1..c81d05fc 100644 --- a/godoc/redirect/redirect.go +++ b/godoc/redirect/redirect.go @@ -150,7 +150,7 @@ func Handler(target string) http.Handler { }) } -var validId = regexp.MustCompile(`^[A-Za-z0-9-]*$`) +var validId = regexp.MustCompile(`^[A-Za-z0-9-]*/?$`) func PrefixHandler(prefix, baseURL string) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { diff --git a/godoc/redirect/redirect_test.go b/godoc/redirect/redirect_test.go index 5e8045a3..8a02de32 100644 --- a/godoc/redirect/redirect_test.go +++ b/godoc/redirect/redirect_test.go @@ -50,6 +50,9 @@ func TestRedirects(t *testing.T) { "/issues/new": {301, "https://github.com/golang/go/issues/new"}, "/issues/1/2/3": errorResult(404), + "/wiki/foo": {302, "https://github.com/golang/go/wiki/foo"}, + "/wiki/foo/": {302, "https://github.com/golang/go/wiki/foo/"}, + "/design": {301, "https://github.com/golang/proposal/tree/master/design"}, "/design/": {302, "/design"}, "/design/123-foo": {302, "https://github.com/golang/proposal/blob/master/design/123-foo.md"},