【问题标题】:Reverse proxy not rewriting location after redirect重定向后反向代理不重写位置
【发布时间】:2016-12-26 14:54:18
【问题描述】:

我有一个这样设置的 apache 反向代理:

<Location /test>
  ProxyPass https://exampleUrl.com retry=0 ttl=50
  ProxyPassReverse https://exampleUrl.com
</Location>

我正在向https://localUrl/test/login.php?token=发送一个令牌以登录我的请求

我被远程服务器重定向,反向代理将位置正确重写为:/test/sso.php?id=61127

我对 /test/sso.php?id=61127 的请求再次被重定向,但这次位置未正确重写:/status/sso.php

所以它试图在我自己的服务器上找到资源,而它应该指向代理:/test/status/sso.php

我做错了什么,为什么第二个重定向位置没有重写?

【问题讨论】:

    标签: apache redirect proxy reverse-proxy


    【解决方案1】:

    首先,您应该始终匹配 ProxyPass 指令中的斜杠,即在本例中为:https://exampleUrl should be https://exampleUrl/,因为它就是这样,您应该在 ProxyPassReverse 指令中做同样的事情。

    无论如何,最好检查来自后端的回复,将以下内容添加到您正在使用的 LogFormat 中:

    %{Location}o
    

    它将打印后端发送的任何位置,并帮助您了解出了什么问题,如果匹配的斜杠不能解决您的问题,以防您的后端发送 /status/ 而您没有代理。/ p>

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 2023-03-08
      • 2019-01-20
      • 2019-03-12
      • 2019-03-14
      • 2014-03-17
      相关资源
      最近更新 更多