gddo-server: only redirect ASCII errors to #43036

When a request 404s, but not due to an invalid character, redirect to
pkg.go.dev instead of #43036, since that isssue isn't relevant.

Change-Id: I241fe3b380a7f7faf6022246eeb33f4cd441f3f4
Reviewed-on: https://go-review.googlesource.com/c/gddo/+/287795
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/gddo-server/pkgsite.go b/gddo-server/pkgsite.go
index 9ac53a3..6744857 100644
--- a/gddo-server/pkgsite.go
+++ b/gddo-server/pkgsite.go
@@ -362,7 +362,7 @@
 			// If the import path is invalid, redirect to
 			// https://golang.org/issue/43036, so that the users has more context
 			// on why this path does not work on pkg.go.dev.
-			if err := module.CheckImportPath(strings.TrimPrefix(godocURL.Path, "/")); err != nil {
+			if err := module.CheckImportPath(strings.TrimPrefix(godocURL.Path, "/")); err != nil && strings.Contains(err.Error(), "invalid char") {
 				u.Host = "golang.org"
 				u.Path = "/issue/43036"
 				return u
diff --git a/gddo-server/pkgsite_test.go b/gddo-server/pkgsite_test.go
index 061a6cd..2a048ad 100644
--- a/gddo-server/pkgsite_test.go
+++ b/gddo-server/pkgsite_test.go
@@ -172,6 +172,10 @@
 			to:   "https://golang.org/issue/43036",
 		},
 		{
+			from: "https://godoc.org/github.com/badimportpath//doubleslash",
+			to:   "https://pkg.go.dev/github.com/badimportpath//doubleslash?utm_source=godoc",
+		},
+		{
 			from: "https://godoc.org/github.com/google/go-containerregistry/",
 			to:   "https://pkg.go.dev/github.com/google/go-containerregistry?utm_source=godoc",
 		},