gpt4 book ai didi

apache - Go:Apache mod_proxy 后面的相对 http.Redirect

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

我有一个简单的 go 服务器监听 :8888

package main

import (
"log"
"net/http"
)

func main() {

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
log.Println("redirecting to foo")
http.Redirect(w, r, "foo", http.StatusFound)
})

http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("fooooo"))
})

if err := http.ListenAndServe(":8888", nil); err != nil {
log.Fatal(err)
}
}

我把它放在 apache 后面,它代理所有对 /bar/* 的请求到 go 服务器。我正在使用 ProxyPassMatch 来执行此操作。

 ProxyPassMatch ^/bar/?(:?(.*))?$ http://localhost:8888/$2

问题是,当我转到 /bar/ 时,我被重定向到 /foo 而不是 /bar/foo

有没有办法让它工作,或者我是否需要在所有重定向前加上 /bar 前缀?

最佳答案

如果您希望 Apache 重写重定向响应中的位置,您还需要包含 ProxyPassReverse配置中的指令。像这样的东西应该可以解决问题:

ProxyPassReverse /bar/ http://localhost:8888/

关于apache - Go:Apache mod_proxy 后面的相对 http.Redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245667/

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