gpt4 book ai didi

url - 如何从 golang 中的确切 url 重定向?

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:09 24 4
gpt4 key购买 nike

每当从 localhost:9000/发出请求时,我想将用户重定向到 localhost:9000/#/trade/gem/GEM 。我遇到的问题是我得到无限重定向,因为“/”在每个 url 之前。我如何才能使用户仅在访问 localhost:9000/的确切 URL 时才被重定向?我的代码如下:

var newUrl string = "/#/trade/gem/GEM"

func handleRedirect(rw http.ResponseWriter, req *http.Request) {
http.Redirect(rw, req, newUrl, http.StatusSeeOther)
}

func main() {
http.Handle("/#/trade/", fs)
http.HandleFunc("/", handleRedirect) //This is the exact url I want to redirect from
http.ListenAndServe(":9000", nil)
}

最佳答案

/ 被注册时,所有的 url 都会重定向到这个,直到另一个模式没有被注册。为了解决这个问题并只处理特定的模式,你可以编写一个自定义处理程序,你可以实现一个每当 localhost:9000/ 打开时它重定向到特定 url 的逻辑。

package main

import (
"fmt"
"net/http"
)

type Handler struct{}

var NewUrl string = "/trade/gem/GEM"

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
uri := r.URL.Path
if uri == "/" {
http.Redirect(w, r, NewUrl, http.StatusSeeOther)
}
fmt.Fprintf(w, uri)
return
}

func main() {
handler := new(Handler)
http.ListenAndServe(":9000", handler)
}

更多详情请查看http.handler

注意:您不能在 uri 中使用 #

关于url - 如何从 golang 中的确切 url 重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51995807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com