2015-10-15 2 views
0

Как вы перенаправляете свой домен * .appspot.com в свой собственный домен. То, что я хочу перенаправить домены, как это:Как перенаправить * .appspot.com в настраиваемый домен

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

Примечание: Я использую идти и горилла мультиплексор.

+2

Проверьте домен в запрос и перенаправить его, если он не является вашим каноническим. Довольно просто. – thwd

+0

Должен ли я делать это со всеми функциями моего обработчика? –

ответ

3

Вы можете сделать http.Handler комбинаторика, как описано here для повторного использования кода.

В вашем случае комбинатор будет выглядеть примерно так (настроить его по своему вкусу и требованиям):

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) 

    } 
} 

В общем, вы можете обернуть ваши обработчик с этим:

http.Handle("/foo", NewCanonicalDomainHandler(someHandler)) 
+0

Я пробовал это с помощью 'localhost' и' 127.0.0.1'. Когда я перехожу к 'http: // localhost', он перенаправляется на' http: // localhost/127.0.0.1' –

+0

localhost is special. но эй, подстройте код, поиграйте с ним. – thwd

+1

Я, наконец, получил его, я изменил 'if r.Url.Host' на' if r.Host', а затем добавит 'u.Scheme =" http "' –

Смежные вопросы