我有这个域名http://mynewurl.com/ , 哪个帧转发到 - http://oldurl.com:8000我为博客运行的 Go 服务器。
我需要为每个帖子映射正确设置 URL
由于目前访问主页上的链接完全掩盖了 URL,因此任何共享(希望使用网络提及)都不会引用该帖子的 URL,而是引用主 URL……
但我想知道是否可以让 Golang 更好地播放并在新的 URL 上收听?
func main() {
http.HandleFunc("/", handlerequest)
http.ListenAndServe(":8000", nil)
}
最佳答案
查看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
}
关于go - Golang 中的 HTTP 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436506/