2015-02-10 16 views
0

我有这个域http://mynewurl.com/,哪一帧转发到 - http://oldurl.com:8000我正在运行的博客服务器。转到内的HTTP重定向lang

我需要有网址,每个岗位地图正确又名

截至此刻访问的主页口罩链接URL完全,因此任何共享(希望使用webmentions)将不会引用该帖子的URL,但主要的URL ...

但我想知道如果我可以得到golang发挥更好,并听取新的网址?

func main() { 
    http.HandleFunc("/", handlerequest) 
    http.ListenAndServe(":8000", nil) 
} 
+0

一个建议是有它的index.php拉在远程页面数据并将其注入到实际的页面在newurl.com – adamprocter 2015-02-10 17:17:42

+0

找到又名 - 卷曲PHP https://github.com/joshdick/miniproxy – adamprocter 2015-02-10 17:18:31

回答

2

httputil.ReverseProxy

我用它来执行请求,翻斗车,基本上没有你所描述的 - 监听特定端口并转发到了一些网址。

这是示例代码。里程可能会有所不同,因为我刚刚删除了与我在代理中进行的实际工作相关的部分,并留下了可进行路由的部分。 但它可能是一个起点。

func SetProxy(targetUrl string) (newUrl string, err error) { 
    var target *url.URL 
    target, err = url.Parse(targetUrl) 
    if err != nil { 
     return "", err 
    } 
    origHost := target.Host 
    origScheme := target.Scheme 
    d := func(req *http.Request) { 
     req.URL.Host = origHost 
     req.URL.Scheme = origScheme 
    } 

    p := &httputil.ReverseProxy{Director: d,} 
    http.HandleFunc("/", p) 

    target.Host = "localhost:8000" 
    target.Scheme = "http" 
    newUrl = target.String() 
    go func() { 
     err = http.ListenAndServe(":"+localPort, nil) 
     if err != nil { 
      panic(err) 
     } 
    }() 

    return newUrl, nil 
} 
+0

感谢,我根据我的用例思考,这将比我预期的更复杂 – adamprocter 2015-02-10 21:18:08