How to redirect *.appspot.com to custom domain

huangapple go评论87阅读模式
英文:

How to redirect *.appspot.com to custom domain

问题

你可以通过以下步骤将*.appspot.com域名重定向到自定义域名:

  1. 在你的自定义域名提供商处设置域名解析,将app-id.appspot.com和www.mycustomdomain.com指向你的服务器IP地址。

  2. 在你的服务器上,使用Go和Gorilla Mux创建一个路由处理器来处理重定向请求。你可以使用gorilla/mux包中的NewRouter函数创建一个新的路由器。

  3. 在路由器上注册一个处理器函数,用于处理重定向请求。你可以使用HandleFunc方法将请求路径和处理函数绑定起来。

  4. 在处理函数中,使用http.Redirect函数将请求重定向到目标URL。你可以将app-id.appspot.com重定向到mycustomdomain.com,将www.mycustomdomain.com重定向到mycustomdomain.com

  5. 启动你的服务器,监听指定的端口。

这样,当用户访问app-id.appspot.comwww.mycustomdomain.com时,请求将被重定向到mycustomdomain.com。请确保你的服务器已正确配置,并且你的自定义域名已经生效。

英文:

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.

答案1

得分: 3

你可以按照这里描述的方式,使用http.Handler组合来重用代码。

在你的情况下,组合器可能如下所示(根据你的喜好和要求进行调整):

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))
英文:

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))

huangapple
  • 本文由 发表于 2015年10月15日 17:57:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/33145440.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定