我有这个域http://mynewurl.com/,哪个框架转发到 - http://oldurl.com:8000我正在为博客运行服务器。
我需要正确地为每个帖子地图设置网址
目前访问主页面上的链接完全屏蔽了URL,因此任何共享(希望使用网页)都不会引用该帖子网址,而是引用主网址......
但我想知道我是否可以让golang
更好地发挥并聆听新网址?
func main() {
http.HandleFunc("/", handlerequest)
http.ListenAndServe(":8000", nil)
}
答案 0 :(得分:2)
查看httputil.ReverseProxy
我用它来实现基本上执行你所描述的请求转储器 - 监听特定端口并转发到某个URL。
这是示例代码。里程可能会有所不同,因为我刚刚删除了与我在代理中所做的实际工作相关的部分,并留下了做路由的部分。 但这可能是一个起点。
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
}