gpt4 book ai didi

php - ProxyPass 和 ProxyPassReverse - 从浏览器地址栏获取原始 URL

转载 作者:行者123 更新时间:2023-12-04 02:10:52 24 4
gpt4 key购买 nike

我创建了两个网站( http://localhost/webone , http://localhost/webtwo )。

Web 2 有这样的 URL:http://localhost/webtwo/webone (使用 ProxyPass 和 ProxyPassReverse)

如果我们转到上面的 URL,将显示 web one 的内容。

现在如果有人访问网络,那么我想捕获用户访问 URL。(可能是 http://localhost/webonehttp://localhost/webtwo/webone )

我的问题是:

如果有人从 http://localhost/webtwo/webone 访问网络二网址。然后,如果我执行以下代码,它会返回 http://localhost/webone .

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

但浏览器显示 URL 是 http://localhost/webtwo/webone .有人可以建议一种方法来捕捉 http://localhost/webtwo/webone网址。

最佳答案

您可以使用 RequestHeader 添加自定义请求 header 请求 header 列表的指令(紧接在 ProxyPass* 之后):

RequestHeader add X-REQUEST-URI "expr=%{HTTP_HOST}%{REQUEST_URI}"

这样您将拥有一个名为 HTTP_X_REQUEST_URI 的 header ,它是所请求 URI 的持有者,并且可以通过 $_SERVER['HTTP_X_REQUEST_URI'] 访问:

'HTTP_X_REQUEST_URI' => string 'localhost/webtwo/webone' (length=23)

还有一些 header 由 mod_proxy 设置,您可能会发现它们很有用。来自 apache.org :

When acting in a reverse-proxy mode (using the ProxyPass directive, for example), mod_proxy_http adds several request headers in order to pass information to the origin server. These headers are:

X-Forwarded-For The IP address of the client.

X-Forwarded-Host The original host requested by the client in the Host HTTP request header.

X-Forwarded-Server The hostname of the proxy server.

关于php - ProxyPass 和 ProxyPassReverse - 从浏览器地址栏获取原始 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38564070/

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