aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2021-08-20 13:36:41 -0400
committerRuss Cox <rsc@golang.org>2021-08-20 18:38:02 +0000
commitb742e160ceecf7804bbf6782365009355c94740a (patch)
tree286c3da9ba59d673a23b9f52479aa89e4f6900ae /cmd
parent19b2f83d87be6ca8e0188edf5cb28611777e1caf (diff)
downloadgo-x-website-b742e160ceecf7804bbf6782365009355c94740a.tar.xz
cmd/golangorg: disable China detection on go.dev
Go.dev has never had golang.org's China detection (which is there for historical reasons), so we don't need to start now. This fixes a problem with go.dev/blog redirecting to golang.google.cn for users who are not actually in China. Fixes golang/go#47846. Change-Id: Ie1545c46aa881fd0ff3bccecf03002659a397c73 Reviewed-on: https://go-review.googlesource.com/c/website/+/344010 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Julie Qiu <julie@golang.org> Website-Publish: Russ Cox <rsc@golang.org>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/golangorg/server.go7
-rw-r--r--cmd/golangorg/testdata/blog.txt7
2 files changed, 11 insertions, 3 deletions
diff --git a/cmd/golangorg/server.go b/cmd/golangorg/server.go
index 368d7f19..8a7d17a2 100644
--- a/cmd/golangorg/server.go
+++ b/cmd/golangorg/server.go
@@ -377,14 +377,15 @@ var validHosts = map[string]bool{
}
// hostEnforcerHandler redirects http://foo.golang.org/bar to https://golang.org/bar.
-// It also forces all requests coming from China to use golang.google.cn.
+// It also forces all requests coming from China for golang.org to use golang.google.cn.
func hostEnforcerHandler(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
isHTTPS := r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" || r.URL.Scheme == "https"
defaultHost := "golang.org"
- isValidHost := validHosts[strings.ToLower(r.Host)]
+ host := strings.ToLower(r.Host)
+ isValidHost := validHosts[host]
- if googleCN(r) {
+ if googleCN(r) && strings.HasSuffix(host, "golang.org") {
// golang.google.cn is the only web site in China.
defaultHost = "golang.google.cn"
isValidHost = strings.ToLower(r.Host) == defaultHost
diff --git a/cmd/golangorg/testdata/blog.txt b/cmd/golangorg/testdata/blog.txt
index 4c7afc25..496cffed 100644
--- a/cmd/golangorg/testdata/blog.txt
+++ b/cmd/golangorg/testdata/blog.txt
@@ -51,3 +51,10 @@ redirect == https://go.dev/blog/go1.16
GET https://go.dev/blog/go1.16
body contains Go 1.16
+
+GET https://blog.golang.org/?googlecn=1
+redirect == https://golang.google.cn/?googlecn=1
+
+# Do not China-redirect go.dev links, because they will break.
+GET https://go.dev/blog/?googlecn=1
+body contains The Go Blog