diff --git a/app/goplay/compile.go b/app/goplay/compile.go
index be1e3e7..0619587 100644
--- a/app/goplay/compile.go
+++ b/app/goplay/compile.go
@@ -16,7 +16,7 @@
 const runUrl = "http://golang.org/compile?output=json"
 
 func init() {
-	http.HandleFunc("/compile", compile)
+	http.HandleFunc("/compile", httpsOnlyHandler{compile})
 }
 
 func compile(w http.ResponseWriter, r *http.Request) {
diff --git a/app/goplay/edit.go b/app/goplay/edit.go
index ce29a78..8d9600a 100644
--- a/app/goplay/edit.go
+++ b/app/goplay/edit.go
@@ -16,7 +16,7 @@
 const hostname = "play.golang.org"
 
 func init() {
-	http.HandleFunc("/", edit)
+	http.HandleFunc("/", httpsOnlyHandler{edit})
 }
 
 var editTemplate = template.Must(template.ParseFiles("goplay/edit.html"))
diff --git a/app/goplay/fmt.go b/app/goplay/fmt.go
index a862343..4cda931 100644
--- a/app/goplay/fmt.go
+++ b/app/goplay/fmt.go
@@ -13,7 +13,7 @@
 )
 
 func init() {
-	http.HandleFunc("/fmt", fmtHandler)
+	http.HandleFunc("/fmt", httpsOnlyHandler{fmtHandler})
 }
 
 type fmtResponse struct {
diff --git a/app/goplay/https.go b/app/goplay/https.go
new file mode 100644
index 0000000..93297ac
--- /dev/null
+++ b/app/goplay/https.go
@@ -0,0 +1,27 @@
+// Copyright 2016 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package goplay
+
+import (
+	"net/http"
+
+	"appengine"
+)
+
+// httpsOnlyHandler redirects requests to "http://example.com/foo?bar"
+// to "https://example.com/foo?bar"
+type httpsOnlyHandler struct {
+	fn http.HandlerFunc
+}
+
+func (h httpsOnlyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+	if !appengine.IsDevAppServer() && r.TLS == nil {
+		r.URL.Scheme = "https"
+		r.URL.Host = r.Host
+		http.Redirect(w, r, r.URL.String(), http.StatusFound)
+		return
+	}
+	h.fn(w, r)
+}
diff --git a/app/goplay/play.go b/app/goplay/play.go
index b8257f1..0dcee31 100644
--- a/app/goplay/play.go
+++ b/app/goplay/play.go
@@ -12,7 +12,7 @@
 )
 
 func init() {
-	http.HandleFunc("/playground.js", play)
+	http.HandleFunc("/playground.js", httpsOnlyHandler{play})
 }
 
 func play(w http.ResponseWriter, r *http.Request) {
diff --git a/app/goplay/share.go b/app/goplay/share.go
index 72fca10..e0c16a0 100644
--- a/app/goplay/share.go
+++ b/app/goplay/share.go
@@ -35,7 +35,7 @@
 }
 
 func init() {
-	http.HandleFunc("/share", share)
+	http.HandleFunc("/share", httpsOnlyHandler{share})
 }
 
 func share(w http.ResponseWriter, r *http.Request) {
