0

How do you redirect your *.appspot.com domain to your custom domain. What I want is redirect the domains like this:

app-id.appspot.com -> mycustomdomain.com www.mycustomdomain.com -> mycustomdomain.com

Note: I am using go and gorilla mux.

2
  • 2
    Check the domain in the request and redirect it if it's not your canonical one. Pretty straightforward. Commented Oct 15, 2015 at 10:09
  • Do I have to do it to all of my handler functions? Commented Oct 15, 2015 at 10:44

1 Answer 1

3

You can do http.Handler combinatorics as described here to reuse code.

In your case the combinator would look something like this (tweak it to your taste and requirements):

func NewCanonicalDomainHandler(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Host != "myapp.com" { u := *r.URL u.Host = "myapp.com" u.Scheme = "http" http.Redirect(w, r, u.String(), http.StatusMovedPermanently) return } next(w, r) } } 

The you can wrap your handlers with that:

 http.Handle("/foo", NewCanonicalDomainHandler(someHandler)) 
Sign up to request clarification or add additional context in comments.

3 Comments

I tried this with localhost and 127.0.0.1. When I navigate to http://localhost it will redirect to http://localhost/127.0.0.1
localhost is special. but hey, tweak the code, play around with it.
I finally got it, I changed if r.Url.Host to if r.Host then add u.Scheme = "http"

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.